Media Player Kit v1.3.0 API Reference for Windows
IAgoraMediaPlayer.h
1 //
2 // Agora Rtc Engine SDK
3 //
4 // Copyright (c) 2019 Agora.io. All rights reserved.
5 //
6 
7 #ifndef AGORA_MEDIA_PLAYER_H_
8 #define AGORA_MEDIA_PLAYER_H_
9 
10 #include "AgoraMediaBase.h"
11 #include "AgoraMediaPlayerTypes.h"
12 
13 namespace agora {
14 namespace rtc {
15 
27  bool enable_chat_voice_mode = false;
30  void *context = nullptr;
31 };
34 
38 class IMediaPlayer {
39  protected:
40  virtual ~IMediaPlayer() = default;
41 
42  public:
51  virtual int initialize(const MediaPlayerContext& context) = 0;
52 
65  virtual int open(const char* src, int64_t startPos) = 0;
66 
77  virtual int play() = 0;
78 
88  virtual int pause() = 0;
89 
98  virtual int stop() = 0;
99 
113  virtual int seek(int64_t pos) = 0;
114 
127  virtual int mute(bool mute) = 0;
128 
141  virtual int getMute(bool& mute) = 0;
142 
154  virtual int adjustPlayoutVolume(int volume) = 0;
155 
167  virtual int getPlayoutVolume(int& volume) = 0;
168 
178  virtual int getDuration(int64_t& duration) = 0;
179 
189  virtual int getPlayPosition(int64_t& pos) = 0;
190 
201  virtual int getStreamCount(int64_t& count) = 0;
202 
215  virtual int getStreamInfo(int64_t index, media::base::MediaStreamInfo* info) = 0;
216 
227 
237  virtual int setView(media::base::view_t view) = 0;
238 
253  virtual int setRenderMode(media::base::RENDER_MODE_TYPE renderMode) = 0;
254 
265  virtual int registerPlayerObserver(IMediaPlayerObserver* observer) = 0;
266 
277  virtual int unregisterPlayerObserver(IMediaPlayerObserver* observer) = 0;
278 
305 
319 
333 
335 
350  virtual int connect(const char* token, const char* channelId, media::base::user_id_t userId) = 0;
351 
363  virtual int disconnect() = 0;
364 
374  virtual int publishVideo() = 0;
375 
387  virtual int unpublishVideo() = 0;
388 
398  virtual int publishAudio() = 0;
399 
410  virtual int unpublishAudio() = 0;
411 
422  virtual int adjustPublishSignalVolume(int volume) = 0;
424 
442  virtual int setLogFile(const char* filePath) = 0;
443 
468  virtual int setLogFilter(unsigned int filter) = 0;
469 
483 
495  virtual int selectAudioTrack(int index) = 0;
496 
510  virtual int setPlayerOption(const char *key ,int value) = 0;
511 
525  virtual int setPlayerOption(const char *key ,const char *value) = 0;
526 
528 
536  virtual int takeScreenshot(const char* filename) = 0;
537 
546  virtual int selectInternalSubtitle(int index) = 0;
548 
560  virtual int setExternalSubtitle(const char* url) = 0;
561 
575  virtual int setPlayerOption(const char *key ,const char *value) = 0;
576 
591  virtual int setLoopCount(int loopCount) = 0;
592 
597  virtual const char* getPlayerSdkVersion() = 0;
598 
623  virtual int switchSrc(const char* src, bool syncPts = true) = 0;
624 
640  virtual int addPreloadSrc(const char* src, int64_t startPos) = 0;
641 
656  virtual int playPreload(const char* src) = 0;
657 
662  virtual void release(bool sync = true) = 0;
663 };
668  public:
683 
692  virtual void onPositionChanged(const int64_t position_ms) = 0;
693 
711 
721  virtual void onMetadata(media::base::MEDIA_PLAYER_METADATA_TYPE type, const uint8_t* data,
722  uint32_t length) = 0;
723 
730  virtual void onPreloadEvent(const char* src, media::base::PLAYER_PRELOAD_EVENT event) = 0;
731 
741  virtual void onPlayBufferUpdated(int64_t playCachedBuffer) = 0;
742 
744 
747  virtual void onCompleted() = 0;
749 
751 };
752 
753 } // namespace rtc
754 } // namespace agora
755 
756 #if defined(_WIN32)
757 
758 #ifndef WIN32_LEAN_AND_MEAN
759 #define WIN32_LEAN_AND_MEAN
760 #endif // WIN32_LEAN_AND_MEAN
761 
762 #include <windows.h>
763 #define AGORA_PLAYER_API extern "C"
764 #define AGORA_PLAYER_CALL
765 
766 #elif defined(__APPLE__)
767 
768 #include <TargetConditionals.h>
769 #define AGORA_PLAYER_API __attribute__((visibility("default"))) extern "C"
770 #define AGORA_PLAYER_CALL
771 
772 #elif defined(__ANDROID__) || defined(__linux__)
773 
774 #define AGORA_PLAYER_API extern "C" __attribute__((visibility("default")))
775 #define AGORA_PLAYER_CALL
776 
777 #else
778 
779 #define AGORA_PLAYER_API extern "C"
780 #define AGORA_PLAYER_CALL
781 
782 #endif
783 
785 
789 
797 AGORA_PLAYER_API agora::rtc::IMediaPlayer* AGORA_PLAYER_CALL createAgoraMediaPlayer();
799 
801 #endif // AGORA_MEDIA_PLAYER_H_
Definition: AgoraMediaBase.h:143
Definition: AgoraMediaBase.h:366
Definition: IAgoraMediaPlayer.h:38
virtual int switchSrc(const char *src, bool syncPts=true)=0
virtual int unregisterAudioFrameObserver(agora::media::base::IAudioFrameObserver *observer)=0
virtual int getPlayPosition(int64_t &pos)=0
virtual int playPreload(const char *src)=0
virtual int setLogFilter(unsigned int filter)=0
virtual int getStreamInfo(int64_t index, media::base::MediaStreamInfo *info)=0
virtual int registerPlayerObserver(IMediaPlayerObserver *observer)=0
virtual int getMute(bool &mute)=0
virtual int setLoopCount(int loopCount)=0
virtual media::base::MEDIA_PLAYER_STATE getState()=0
virtual int seek(int64_t pos)=0
virtual int setPlayerOption(const char *key, const char *value)=0
virtual int registerAudioFrameObserver(media::base::IAudioFrameObserver *observer)=0
virtual int addPreloadSrc(const char *src, int64_t startPos)=0
virtual int setPlayerOption(const char *key, int value)=0
virtual int selectAudioTrack(int index)=0
virtual int play()=0
virtual void release(bool sync=true)=0
virtual int registerVideoFrameObserver(media::base::IVideoFrameObserver *observer)=0
virtual int changePlaybackSpeed(media::base::MEDIA_PLAYER_PLAYBACK_SPEED speed)=0
virtual int setRenderMode(media::base::RENDER_MODE_TYPE renderMode)=0
virtual int setView(media::base::view_t view)=0
virtual int mute(bool mute)=0
virtual int getPlayoutVolume(int &volume)=0
virtual int unregisterPlayerObserver(IMediaPlayerObserver *observer)=0
virtual int pause()=0
virtual int getStreamCount(int64_t &count)=0
virtual int unregisterVideoFrameObserver(agora::media::base::IVideoFrameObserver *observer)=0
virtual int getDuration(int64_t &duration)=0
virtual int setLogFile(const char *filePath)=0
virtual ~IMediaPlayer()=default
virtual int setExternalSubtitle(const char *url)=0
virtual int stop()=0
virtual int adjustPlayoutVolume(int volume)=0
virtual const char * getPlayerSdkVersion()=0
virtual int initialize(const MediaPlayerContext &context)=0
virtual int open(const char *src, int64_t startPos)=0
Definition: IAgoraMediaPlayer.h:667
virtual void onPlayerStateChanged(media::base::MEDIA_PLAYER_STATE state, media::base::MEDIA_PLAYER_ERROR ec)=0
virtual void onPositionChanged(const int64_t position_ms)=0
virtual ~IMediaPlayerObserver()
Definition: IAgoraMediaPlayer.h:750
virtual void onPlayerEvent(media::base::MEDIA_PLAYER_EVENT event)=0
virtual void onMetadata(media::base::MEDIA_PLAYER_METADATA_TYPE type, const uint8_t *data, uint32_t length)=0
virtual void onPreloadEvent(const char *src, media::base::PLAYER_PRELOAD_EVENT event)=0
virtual void onPlayBufferUpdated(int64_t playCachedBuffer)=0
AGORA_PLAYER_API agora::rtc::IMediaPlayer *AGORA_PLAYER_CALL createAgoraMediaPlayer()
MEDIA_PLAYER_EVENT
Definition: AgoraMediaPlayerTypes.h:164
RENDER_MODE_TYPE
Definition: AgoraMediaBase.h:195
MEDIA_PLAYER_METADATA_TYPE
Definition: AgoraMediaPlayerTypes.h:261
PLAYER_PRELOAD_EVENT
Definition: AgoraMediaPlayerTypes.h:203
const char * user_id_t
Definition: AgoraMediaBase.h:77
MEDIA_PLAYER_STATE
Definition: AgoraMediaPlayerTypes.h:52
void * view_t
Definition: AgoraMediaBase.h:75
MEDIA_PLAYER_ERROR
Definition: AgoraMediaPlayerTypes.h:94
MEDIA_PLAYER_PLAYBACK_SPEED
Definition: AgoraMediaPlayerTypes.h:126
Definition: AgoraMediaBase.h:12
Definition: AgoraMediaPlayerTypes.h:216
Definition: IAgoraMediaPlayer.h:22
bool enable_chat_voice_mode
Definition: IAgoraMediaPlayer.h:27
void * context
Definition: IAgoraMediaPlayer.h:30