Agora Java API Reference for Android
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 IMediaPlayerCustomDataProvider;
18 
23 public:
24 
31  virtual int onReadData(unsigned char *buf, int buf_size) = 0;
32 
45  virtual int64_t onSeek(int64_t offset, int whence) = 0;
46 
47  virtual ~IMediaPlayerCustomDataProvider() {}
48 };
49 
55 protected:
56  virtual ~IMediaPlayerSource() {}
57 
58 public:
59 
66  virtual int getSourceId() const = 0;
67 
76  virtual int open(const char* url, int64_t startPos) = 0;
77 
86  virtual int openWithCustomSource(int64_t startPos, IMediaPlayerCustomDataProvider* provider) = 0;
87 
94  virtual int play() = 0;
95 
102  virtual int pause() = 0;
103 
110  virtual int stop() = 0;
111 
118  virtual int resume() = 0;
119 
127  virtual int seek(int64_t newPos) = 0;
128 
136  virtual int getDuration(int64_t& duration) = 0;
137 
145  virtual int getPlayPosition(int64_t& pos) = 0;
146 
154  virtual int getStreamCount(int64_t& count) = 0;
155 
164  virtual int getStreamInfo(int64_t index, media::base::PlayerStreamInfo* info) = 0;
165 
176  virtual int setLoopCount(int64_t loopCount) = 0;
177 
185  virtual int muteAudio(bool audio_mute) = 0;
186 
192  virtual bool isAudioMuted() = 0;
193 
201  virtual int muteVideo(bool audio_mute) = 0;
202 
208  virtual bool isVideoMuted() = 0;
209 
217  virtual int changePlaybackSpeed(media::base::MEDIA_PLAYER_PLAYBACK_SPEED speed) = 0;
218 
226  virtual int selectAudioTrack(int64_t index) = 0;
227 
236  virtual int setPlayerOption(const char* key, int64_t value) = 0;
237 
246  virtual int setPlayerOption(const char* key, const char* value) = 0;
247 
255  virtual int takeScreenshot(const char* filename) = 0;
256 
264  virtual int selectInternalSubtitle(int64_t index) = 0;
265 
273  virtual int setExternalSubtitle(const char* url) = 0;
274 
279  virtual media::base::MEDIA_PLAYER_STATE getState() = 0;
280 
291 
300 
310 
319 };
320 
325  public:
326  virtual ~IMediaPlayerSourceObserver() {}
327 
335  virtual void onPlayerSourceStateChanged(media::base::MEDIA_PLAYER_STATE state,
336  media::base::MEDIA_PLAYER_ERROR ec) = 0;
337 
344  virtual void onPositionChanged(int64_t position) = 0;
345 
354  virtual void onPlayerEvent(media::base::MEDIA_PLAYER_EVENT event) = 0;
355 
363  virtual void onMetaData(const void* data, int length) = 0;
364 
365 
371  virtual void onPlayBufferUpdated(int64_t playCachedBuffer) = 0;
372 
376  virtual void onCompleted() = 0;
377 };
378 
379 } //namespace rtc
380 } // namespace agora
agora::rtc::IMediaPlayerSource::getPlayPosition
virtual int getPlayPosition(int64_t &pos)=0
agora::rtc::IMediaPlayerSource
Definition: IAgoraMediaPlayerSource.h:54
agora::rtc::IMediaPlayerSource::seek
virtual int seek(int64_t newPos)=0
agora::rtc::IMediaPlayerSourceObserver::onPlayerEvent
virtual void onPlayerEvent(media::base::MEDIA_PLAYER_EVENT event)=0
Reports the playback event.
agora::rtc::IMediaPlayerSourceObserver
Definition: IAgoraMediaPlayerSource.h:324
agora::rtc::IMediaPlayerSource::setPlayerOption
virtual int setPlayerOption(const char *key, int64_t value)=0
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::rtc::IMediaPlayerSource::isAudioMuted
virtual bool isAudioMuted()=0
agora::rtc::IMediaPlayerSource::open
virtual int open(const char *url, int64_t startPos)=0
agora::rtc::IMediaPlayerSource::pause
virtual int pause()=0
agora::rtc::IMediaPlayerSource::getStreamInfo
virtual int getStreamInfo(int64_t index, media::base::PlayerStreamInfo *info)=0
agora::rtc::IMediaPlayerSource::stop
virtual int stop()=0
agora::rtc::IMediaPlayerSource::changePlaybackSpeed
virtual int changePlaybackSpeed(media::base::MEDIA_PLAYER_PLAYBACK_SPEED speed)=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::setPlayerOption
virtual int setPlayerOption(const char *key, const char *value)=0
agora::rtc::IMediaPlayerSourceObserver::onMetaData
virtual void onMetaData(const void *data, int length)=0
Occurs when the metadata is received.
agora::rtc::IMediaPlayerCustomDataProvider
Definition: IAgoraMediaPlayerSource.h:22
agora::media::base::PlayerStreamInfo
The information of the media stream object.
Definition: AgoraMediaPlayerTypes.h:235
agora::rtc::IMediaPlayerSource::getState
virtual media::base::MEDIA_PLAYER_STATE getState()=0
agora::rtc::IMediaPlayerSource::getSourceId
virtual int getSourceId() const =0
agora::rtc::IMediaPlayerSourceObserver::onCompleted
virtual void onCompleted()=0
Occurs when one playback of the media file is completed.
agora::rtc::IMediaPlayerSource::getStreamCount
virtual int getStreamCount(int64_t &count)=0
agora::rtc::IMediaPlayerSource::setExternalSubtitle
virtual int setExternalSubtitle(const char *url)=0
agora::rtc::IMediaPlayerSource::selectAudioTrack
virtual int selectAudioTrack(int64_t index)=0
agora::rtc::IMediaPlayerSourceObserver::onPositionChanged
virtual void onPositionChanged(int64_t position)=0
Reports current playback progress.
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::muteAudio
virtual int muteAudio(bool audio_mute)=0
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::media::base::IAudioFrameObserver
Definition: AgoraMediaBase.h:395
agora::rtc::IMediaPlayerSource::takeScreenshot
virtual int takeScreenshot(const char *filename)=0
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::rtc::IMediaPlayerSource::registerPlayerSourceObserver
virtual int registerPlayerSourceObserver(IMediaPlayerSourceObserver *observer)=0
agora::rtc::IMediaPlayerSource::selectInternalSubtitle
virtual int selectInternalSubtitle(int64_t index)=0
agora::rtc::IMediaPlayerSource::resume
virtual int resume()=0
agora::rtc::IMediaPlayerSource::getDuration
virtual int getDuration(int64_t &duration)=0
agora::rtc::IMediaPlayerSource::play
virtual int play()=0
agora::rtc::IMediaPlayerSourceObserver::onPlayBufferUpdated
virtual void onPlayBufferUpdated(int64_t playCachedBuffer)=0
Triggered when play buffer updated, once every 1 second.
agora::rtc::IMediaPlayerSource::unregisterPlayerSourceObserver
virtual int unregisterPlayerSourceObserver(IMediaPlayerSourceObserver *observer)=0
agora::rtc::IMediaPlayerSource::muteVideo
virtual int muteVideo(bool audio_mute)=0
agora::rtc::IMediaPlayerSource::registerAudioFrameObserver
virtual int registerAudioFrameObserver(media::base::IAudioFrameObserver *observer)=0
agora::rtc::IMediaPlayerSource::setLoopCount
virtual int setLoopCount(int64_t loopCount)=0
agora::rtc::IMediaPlayerSource::unregisterAudioFrameObserver
virtual int unregisterAudioFrameObserver(media::base::IAudioFrameObserver *observer)=0
agora::rtc::IMediaPlayerSource::isVideoMuted
virtual bool isVideoMuted()=0