Media Player Kit v1.3.0 API Reference for Windows
IAgoraMediaPlayerSource.h
1 //
2 // Agora SDK
3 //
4 // Copyright (c) 2018 Agora.io. All rights reserved.
5 //
6 #pragma once // NOLINT(build/header_guard)
7 
8 #include "AgoraBase.h"
9 #include "AgoraMediaBase.h"
10 #include "AgoraMediaPlayerTypes.h"
11 #include "AgoraRefPtr.h"
12 
13 namespace agora {
14 namespace rtc {
15 
16 class IMediaPlayerSourceObserver;
17 class IPreRenderFrameObserver;
22 class IMediaPlayerSource : public RefCountInterface {
23 protected:
24  virtual ~IMediaPlayerSource() = default;
25 
26 public:
27 
34  virtual int getSourceId() const = 0;
35 
48  virtual int open(const char* url, int64_t startPos) = 0;
49 
60  virtual int play() = 0;
61 
71  virtual int pause() = 0;
72 
81  virtual int stop() = 0;
82 
91  virtual int resume() = 0;
92 
106  virtual int seek(int64_t newPos) = 0;
107 
117  virtual int getDuration(int64_t& duration) = 0;
118 
128  virtual int getPlayPosition(int64_t& pos) = 0;
129 
140  virtual int getStreamCount(int64_t& count) = 0;
141 
154  virtual int getStreamInfo(int64_t index, media::base::MediaStreamInfo* info) = 0;
155 
170  virtual int setLoopCount(int loopCount) = 0;
171 
185 
197  virtual int selectAudioTrack(int index) = 0;
198 
212  virtual int setPlayerOption(const char* key, int value) = 0;
213 
227  virtual int setPlayerOption(const char* key, const char* value) = 0;
228 
230 
238  virtual int takeScreenshot(const char* filename) = 0;
239 
248  virtual int selectInternalSubtitle(int index) = 0;
250 
262  virtual int setExternalSubtitle(const char* url) = 0;
263 
274 
285 
294 
308 
322 
324  virtual int registerPreRenderFrameObserver(IPreRenderFrameObserver* observer) = 0;
325  virtual int unregisterPreRenderFrameObserver(IPreRenderFrameObserver* observer) = 0;
327 };
328 
330  public:
331  virtual ~IMediaPlayerSourceObserver() = default;
332 
341 
350  virtual void onPositionChanged(int64_t position_ms) = 0;
351 
368 
378  virtual void onMetaData(const void* data, int length) = 0;
379 
389  virtual void onPlayBufferUpdated(int64_t playCachedBuffer) = 0;
390 
396  virtual void onPreloadEvent(const char* src, media::base::PLAYER_PRELOAD_EVENT event) = 0;
397 
399 
402  virtual void onCompleted() = 0;
404 };
405 
406 } //namespace rtc
407 } // namespace agora
Definition: AgoraMediaBase.h:143
Definition: IAgoraMediaPlayerSource.h:22
virtual int registerPlayerSourceObserver(IMediaPlayerSourceObserver *observer)=0
virtual media::base::MEDIA_PLAYER_STATE getState()=0
virtual int getSourceId() const =0
virtual int unregisterPlayerSourceObserver(IMediaPlayerSourceObserver *observer)=0
virtual int unregisterAudioFrameObserver(media::base::IAudioFrameObserver *observer)=0
virtual int getDuration(int64_t &duration)=0
virtual int getStreamInfo(int64_t index, media::base::MediaStreamInfo *info)=0
virtual int registerAudioFrameObserver(media::base::IAudioFrameObserver *observer)=0
virtual int setExternalSubtitle(const char *url)=0
virtual int changePlaybackSpeed(media::base::MEDIA_PLAYER_PLAYBACK_SPEED speed)=0
virtual ~IMediaPlayerSource()=default
virtual int setPlayerOption(const char *key, int value)=0
virtual int open(const char *url, int64_t startPos)=0
virtual int selectAudioTrack(int index)=0
virtual int setLoopCount(int loopCount)=0
virtual int seek(int64_t newPos)=0
virtual int getPlayPosition(int64_t &pos)=0
virtual int setPlayerOption(const char *key, const char *value)=0
virtual int getStreamCount(int64_t &count)=0
Definition: IAgoraMediaPlayerSource.h:329
virtual ~IMediaPlayerSourceObserver()=default
virtual void onPlayBufferUpdated(int64_t playCachedBuffer)=0
virtual void onPreloadEvent(const char *src, media::base::PLAYER_PRELOAD_EVENT event)=0
Triggered when the player addPreloadSrc.
virtual void onPositionChanged(int64_t position_ms)=0
virtual void onPlayerEvent(media::base::MEDIA_PLAYER_EVENT event)=0
virtual void onMetaData(const void *data, int length)=0
virtual void onPlayerSourceStateChanged(media::base::MEDIA_PLAYER_STATE state, media::base::MEDIA_PLAYER_ERROR ec)=0
Triggered when the player state changes.
MEDIA_PLAYER_EVENT
Definition: AgoraMediaPlayerTypes.h:164
MEDIA_PLAYER_STATE
Definition: AgoraMediaPlayerTypes.h:52
MEDIA_PLAYER_ERROR
Definition: AgoraMediaPlayerTypes.h:94
MEDIA_PLAYER_PLAYBACK_SPEED
Definition: AgoraMediaPlayerTypes.h:126
Definition: AgoraMediaBase.h:12
Definition: AgoraMediaPlayerTypes.h:191