Agora RTC Objective-C API Reference  Refactor
IAgoraMediaPlayerSource.h
Go to the documentation of this file.
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 
22 public:
23 
30  virtual int onReadData(unsigned char *buf, int buf_size) = 0;
31 
44  virtual int64_t onSeek(int64_t offset, int whence) = 0;
45 
47 };
48 
54 protected:
55  virtual ~IMediaPlayerSource() {}
56 
57 public:
58 
65  virtual int getSourceId() const = 0;
66 
75  virtual int open(const char* url, int64_t startPos) = 0;
76 
85  virtual int openWithCustomSource(int64_t startPos, IMediaPlayerCustomDataProvider* provider) = 0;
86 
93  virtual int play() = 0;
94 
101  virtual int pause() = 0;
102 
109  virtual int stop() = 0;
110 
117  virtual int resume() = 0;
118 
126  virtual int seek(int64_t newPos) = 0;
127 
135  virtual int getDuration(int64_t& duration) = 0;
136 
144  virtual int getPlayPosition(int64_t& pos) = 0;
145 
153  virtual int getStreamCount(int64_t& count) = 0;
154 
163  virtual int getStreamInfo(int64_t index, media::base::PlayerStreamInfo* info) = 0;
164 
175  virtual int setLoopCount(int64_t loopCount) = 0;
176 
184  virtual int muteAudio(bool audio_mute) = 0;
185 
191  virtual bool isAudioMuted() = 0;
192 
200  virtual int muteVideo(bool audio_mute) = 0;
201 
207  virtual bool isVideoMuted() = 0;
208 
216  virtual int setPlaybackSpeed(int speed) = 0;
217 
225  virtual int selectAudioTrack(int64_t index) = 0;
226 
235  virtual int setPlayerOption(const char* key, int64_t value) = 0;
236 
245  virtual int setPlayerOption(const char* key, const char* value) = 0;
246 
254  virtual int takeScreenshot(const char* filename) = 0;
255 
263  virtual int selectInternalSubtitle(int64_t index) = 0;
264 
272  virtual int setExternalSubtitle(const char* url) = 0;
273 
279 
290 
299 
309 
318 
327  virtual int openWithAgoraCDNSrc(const char* src, int64_t startPos) = 0;
328 
335  virtual int getAgoraCDNLineCount() = 0;
336 
337 
345  virtual int switchAgoraCDNLineByIndex(int index) = 0;
346 
353  virtual int getCurrentAgoraCDNIndex() = 0;
354 
362  virtual int enableAutoSwitchAgoraCDN(bool enable) = 0;
363 
372  virtual int renewAgoraCDNSrcToken(const char* token, int64_t ts) = 0;
373 
382  virtual int switchAgoraCDNSrc(const char* src, bool syncPts = false) = 0;
383 
392  virtual int switchSrc(const char* src, bool syncPts) = 0;
393 
402  virtual int preloadSrc(const char* src, int64_t startPos) = 0;
403 
411  virtual int unloadSrc(const char* src) = 0;
412 
420  virtual int playPreloadedSrc(const char* src) = 0;
421 
422 };
423 
428  public:
430 
440 
447  virtual void onPositionChanged(int64_t position) = 0;
448 
459  virtual void onPlayerEvent(media::base::MEDIA_PLAYER_EVENT eventCode, int64_t elapsedTime, const char* message) = 0;
460 
468  virtual void onMetaData(const void* data, int length) = 0;
469 
470 
476  virtual void onPlayBufferUpdated(int64_t playCachedBuffer) = 0;
477 
478 
484  virtual void onPreloadEvent(const char* src, media::base::PLAYER_PRELOAD_EVENT event) = 0;
485 
489  virtual void onCompleted() = 0;
490 
494  virtual void onAgoraCDNTokenWillExpire() = 0;
495 
503  virtual void onPlayerSrcInfoChanged(const media::base::SrcInfo& from, const media::base::SrcInfo& to) = 0;
504 
511 
517  virtual void onAudioVolumeIndication(int volume) = 0;
518 };
519 
520 } //namespace rtc
521 } // namespace agora
agora::rtc::IMediaPlayerSource::getState
virtual media::base::MEDIA_PLAYER_STATE getState()=0
agora::rtc::IMediaPlayerSource::seek
virtual int seek(int64_t newPos)=0
agora::rtc::IMediaPlayerSource::~IMediaPlayerSource
virtual ~IMediaPlayerSource()
Definition: IAgoraMediaPlayerSource.h:55
AgoraBase.h
agora::rtc::IMediaPlayerSource
Definition: IAgoraMediaPlayerSource.h:53
agora::rtc::IMediaPlayerSourceObserver
Definition: IAgoraMediaPlayerSource.h:427
agora::rtc::IMediaPlayerSource::pause
virtual int pause()=0
agora::rtc::IMediaPlayerSource::openWithCustomSource
virtual int openWithCustomSource(int64_t startPos, IMediaPlayerCustomDataProvider *provider)=0
Open media file or stream with custom soucrce.
agora::rtc::IMediaPlayerSource::muteVideo
virtual int muteVideo(bool audio_mute)=0
agora::rtc::IMediaPlayerSourceObserver::onPlayerInfoUpdated
virtual void onPlayerInfoUpdated(const media::base::PlayerUpdatedInfo &info)=0
Triggered when media player information updated.
agora::rtc::IMediaPlayerSource::switchAgoraCDNLineByIndex
virtual int switchAgoraCDNLineByIndex(int index)=0
agora::media::base::PlayerUpdatedInfo
Definition: AgoraMediaPlayerTypes.h:337
agora::rtc::IMediaPlayerSource::switchAgoraCDNSrc
virtual int switchAgoraCDNSrc(const char *src, bool syncPts=false)=0
agora::media::base::MEDIA_PLAYER_EVENT
MEDIA_PLAYER_EVENT
The playback event.
Definition: AgoraMediaPlayerTypes.h:190
agora::rtc::IMediaPlayerSource::renewAgoraCDNSrcToken
virtual int renewAgoraCDNSrcToken(const char *token, int64_t ts)=0
agora::rtc::IMediaPlayerSource::play
virtual int play()=0
agora::media::base::MEDIA_PLAYER_STATE
MEDIA_PLAYER_STATE
The playback state.
Definition: AgoraMediaPlayerTypes.h:56
agora::rtc::IMediaPlayerSourceObserver::onAgoraCDNTokenWillExpire
virtual void onAgoraCDNTokenWillExpire()=0
AgoraCDN Token has expired and needs to be set up with renewAgoraCDNSrcToken(const char* src).
agora::rtc::IMediaPlayerSource::getStreamCount
virtual int getStreamCount(int64_t &count)=0
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::IMediaPlayerSource::takeScreenshot
virtual int takeScreenshot(const char *filename)=0
agora::rtc::IMediaPlayerSource::registerAudioFrameObserver
virtual int registerAudioFrameObserver(media::base::IAudioFrameObserver *observer)=0
agora::rtc::IMediaPlayerSourceObserver::~IMediaPlayerSourceObserver
virtual ~IMediaPlayerSourceObserver()
Definition: IAgoraMediaPlayerSource.h:429
agora::rtc::IMediaPlayerSource::resume
virtual int resume()=0
agora::rtc::IMediaPlayerSource::switchSrc
virtual int switchSrc(const char *src, bool syncPts)=0
agora::rtc::IMediaPlayerSource::setLoopCount
virtual int setLoopCount(int64_t loopCount)=0
agora::rtc::IMediaPlayerSourceObserver::onPositionChanged
virtual void onPositionChanged(int64_t position)=0
Reports current playback progress.
agora::rtc::IMediaPlayerCustomDataProvider::~IMediaPlayerCustomDataProvider
virtual ~IMediaPlayerCustomDataProvider()
Definition: IAgoraMediaPlayerSource.h:46
agora::rtc::IMediaPlayerSourceObserver::onPlayerSourceStateChanged
virtual void onPlayerSourceStateChanged(media::base::MEDIA_PLAYER_STATE state, media::base::MEDIA_PLAYER_ERROR ec)=0
Reports the playback state change.
agora::rtc::IMediaPlayerSource::registerPlayerSourceObserver
virtual int registerPlayerSourceObserver(IMediaPlayerSourceObserver *observer)=0
agora::rtc::IMediaPlayerSource::unregisterAudioFrameObserver
virtual int unregisterAudioFrameObserver(media::base::IAudioFrameObserver *observer)=0
agora::rtc::IMediaPlayerSource::getSourceId
virtual int getSourceId() const =0
agora::rtc::IMediaPlayerSource::isAudioMuted
virtual bool isAudioMuted()=0
agora::rtc::IMediaPlayerSource::getPlayPosition
virtual int getPlayPosition(int64_t &pos)=0
agora::rtc::IMediaPlayerCustomDataProvider
Definition: IAgoraMediaPlayerSource.h:21
agora::media::base::PlayerStreamInfo
The information of the media stream object.
Definition: AgoraMediaPlayerTypes.h:249
agora::rtc::IMediaPlayerSource::openWithAgoraCDNSrc
virtual int openWithAgoraCDNSrc(const char *src, int64_t startPos)=0
agora::rtc::IMediaPlayerSourceObserver::onPreloadEvent
virtual void onPreloadEvent(const char *src, media::base::PLAYER_PRELOAD_EVENT event)=0
Triggered when the player preloadSrc.
agora::rtc::IMediaPlayerSource::muteAudio
virtual int muteAudio(bool audio_mute)=0
agora::rtc::IMediaPlayerSourceObserver::onMetaData
virtual void onMetaData(const void *data, int length)=0
Occurs when the metadata is received.
agora::rtc::IMediaPlayerSource::unregisterPlayerSourceObserver
virtual int unregisterPlayerSourceObserver(IMediaPlayerSourceObserver *observer)=0
agora::rtc::IMediaPlayerSourceObserver::onPlayerSrcInfoChanged
virtual void onPlayerSrcInfoChanged(const media::base::SrcInfo &from, const media::base::SrcInfo &to)=0
Reports current playback source bitrate changed.
agora::rtc::IMediaPlayerSourceObserver::onPlayerEvent
virtual void onPlayerEvent(media::base::MEDIA_PLAYER_EVENT eventCode, int64_t elapsedTime, const char *message)=0
Reports the playback event.
agora::rtc::IMediaPlayerSource::selectAudioTrack
virtual int selectAudioTrack(int64_t index)=0
agora::rtc::IMediaPlayerSource::getStreamInfo
virtual int getStreamInfo(int64_t index, media::base::PlayerStreamInfo *info)=0
AgoraRefPtr.h
agora::rtc::IMediaPlayerSourceObserver::onAudioVolumeIndication
virtual void onAudioVolumeIndication(int volume)=0
Triggered every 200 millisecond ,update player current volume range [0,255].
agora::rtc::IMediaPlayerSource::unloadSrc
virtual int unloadSrc(const char *src)=0
AgoraMediaBase.h
agora::rtc::IMediaPlayerCustomDataProvider::onSeek
virtual int64_t onSeek(int64_t offset, int whence)=0
The Player seek event callback, you need to operate the corresponding stream seek operation,...
agora::media::base::MEDIA_PLAYER_ERROR
MEDIA_PLAYER_ERROR
Player error code.
Definition: AgoraMediaPlayerTypes.h:110
AgoraMediaPlayerTypes.h
agora::media::base::IAudioFrameObserver
Definition: AgoraMediaBase.h:344
agora::rtc::IMediaPlayerSource::getDuration
virtual int getDuration(int64_t &duration)=0
agora::rtc::IMediaPlayerSource::setPlayerOption
virtual int setPlayerOption(const char *key, int64_t value)=0
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::media::base::SrcInfo
The information of the media stream object.
Definition: AgoraMediaPlayerTypes.h:309
agora::rtc::IMediaPlayerSource::playPreloadedSrc
virtual int playPreloadedSrc(const char *src)=0
agora::rtc::IMediaPlayerSource::setPlayerOption
virtual int setPlayerOption(const char *key, const char *value)=0
agora::rtc::IMediaPlayerSource::selectInternalSubtitle
virtual int selectInternalSubtitle(int64_t index)=0
agora::media::base::PLAYER_PRELOAD_EVENT
PLAYER_PRELOAD_EVENT
The play preload another source event.
Definition: AgoraMediaPlayerTypes.h:233
agora::rtc::IMediaPlayerSourceObserver::onCompleted
virtual void onCompleted()=0
Occurs when one playback of the media file is completed.
agora::rtc::IMediaPlayerSource::setExternalSubtitle
virtual int setExternalSubtitle(const char *url)=0
agora::rtc::IMediaPlayerCustomDataProvider::onReadData
virtual int onReadData(unsigned char *buf, int buf_size)=0
The player requests to read the data callback, you need to fill the specified length of data into the...
agora::rtc::IMediaPlayerSource::isVideoMuted
virtual bool isVideoMuted()=0
agora::rtc::IMediaPlayerSource::getCurrentAgoraCDNIndex
virtual int getCurrentAgoraCDNIndex()=0
agora::rtc::IMediaPlayerSource::setPlaybackSpeed
virtual int setPlaybackSpeed(int speed)=0
agora::rtc::IMediaPlayerSource::enableAutoSwitchAgoraCDN
virtual int enableAutoSwitchAgoraCDN(bool enable)=0
agora::rtc::IMediaPlayerSource::preloadSrc
virtual int preloadSrc(const char *src, int64_t startPos)=0
agora::rtc::IMediaPlayerSource::open
virtual int open(const char *url, int64_t startPos)=0
agora::rtc::IMediaPlayerSourceObserver::onPlayBufferUpdated
virtual void onPlayBufferUpdated(int64_t playCachedBuffer)=0
Triggered when play buffer updated, once every 1 second.
agora::rtc::IMediaPlayerSource::getAgoraCDNLineCount
virtual int getAgoraCDNLineCount()=0
agora::rtc::IMediaPlayerSource::stop
virtual int stop()=0