文档中心
互动直播 (Legacy)
API 参考
MediaPlayer Kit C++ API Reference
MediaPlayer Kit C++ API Reference
◆ ~IMediaPlayer()
virtual agora::rtc::IMediaPlayer::~IMediaPlayer |
( |
| ) |
|
|
protectedvirtualdefault |
◆ initialize()
◆ open()
virtual int agora::rtc::IMediaPlayer::open |
( |
const char * |
src, |
|
|
int64_t |
startPos |
|
) |
| |
|
pure virtual |
打开媒体文件
- 参数
-
src | 设置媒体文件的路径:本地路径或网络路径 |
startPos | 设置起始播放位置(毫秒),默认值为 0 |
- 返回
-
◆ play()
virtual int agora::rtc::IMediaPlayer::play |
( |
| ) |
|
|
pure virtual |
◆ pause()
virtual int agora::rtc::IMediaPlayer::pause |
( |
| ) |
|
|
pure virtual |
暂停播放
如果你想恢复播放,请调用 play() 方法。
- 返回
-
◆ stop()
virtual int agora::rtc::IMediaPlayer::stop |
( |
| ) |
|
|
pure virtual |
◆ seek()
virtual int agora::rtc::IMediaPlayer::seek |
( |
int64_t |
pos | ) |
|
|
pure virtual |
从指定的位置播放媒体文件
成功调用该方法后,你会收到 onPlayerEvent 回调,报告当前播放器发生的事件,如定位开始、定位成功或定位失败。
- 参数
-
- 返回
-
◆ mute()
virtual int agora::rtc::IMediaPlayer::mute |
( |
bool |
mute | ) |
|
|
pure virtual |
◆ getMute()
virtual int agora::rtc::IMediaPlayer::getMute |
( |
bool & |
mute | ) |
|
|
pure virtual |
◆ adjustPlayoutVolume()
virtual int agora::rtc::IMediaPlayer::adjustPlayoutVolume |
( |
int |
volume | ) |
|
|
pure virtual |
调节本地播放音量
- 参数
-
volume | 本地播放音量,取值范围从 0 到 100:
- 0: 无声
- 100: (默认)媒体文件的原始播放音量
|
- 返回
-
◆ getPlayoutVolume()
virtual int agora::rtc::IMediaPlayer::getPlayoutVolume |
( |
int & |
volume | ) |
|
|
pure virtual |
获取当前本地播放音量
- 参数
-
[out] | volume | 本地播放音量,取值范围从 0 到 100:
- 0: 无声
- 100: (默认)媒体文件的原始播放音量
|
- 返回
-
◆ getDuration()
virtual int agora::rtc::IMediaPlayer::getDuration |
( |
int64_t & |
duration | ) |
|
|
pure virtual |
◆ getPlayPosition()
virtual int agora::rtc::IMediaPlayer::getPlayPosition |
( |
int64_t & |
pos | ) |
|
|
pure virtual |
◆ getStreamCount()
virtual int agora::rtc::IMediaPlayer::getStreamCount |
( |
int64_t & |
count | ) |
|
|
pure virtual |
◆ getStreamInfo()
◆ getState()
◆ setView()
设置播放器渲染视图
- 参数
-
view | 渲染视图,Windows 平台为窗口句柄(HWND) |
- 返回
-
◆ setRenderMode()
设置播放器视图的渲染模式
- 参数
-
renderMode | 播放器视图的渲染模式:
RENDER_MODE_HIDDEN (1) : 视频尺寸等比缩放。优先保证视窗被填满。因视频尺寸与显示视窗尺寸不一致而多出的视频将被截掉。
RENDER_MODE_FIT (2) : 视频尺寸等比缩放。优先保证视频内容全部显示。因视频尺寸与显示视窗尺寸不一致造成的视窗未被填满的区域填充黑色。
|
- 返回
-
◆ registerPlayerObserver()
注册一个观测器
一旦注册了播放器源观测器,你可以使用观察器来监控播放器的状态变化。
- 参数
-
- 返回
-
◆ unregisterPlayerObserver()
◆ registerVideoFrameObserver()
◆ unregisterVideoFrameObserver()
◆ registerAudioFrameObserver()
◆ unregisterAudioFrameObserver()
◆ setLogFile()
virtual int agora::rtc::IMediaPlayer::setLogFile |
( |
const char * |
filePath | ) |
|
|
pure virtual |
设置日志文件
MediaPlayer Kit 运行时产生的 log 都写入日志文件,调用该方法可以设置日志文件的存储路径。 请确保你指定的日志文件路径存在且可写。如果不调用该方法,日志文件会存储至默认路径: "C:\Users\{user_name}\AppData\Local\Agora\{project_name}"。
- 注解
- 请在调用 initialize() 后立即调用该方法,否则日志文件中的 log 可能不完整。
- 参数
-
filePath | 日志文件的完整路径。该日志文件为 UTF-8 编码。 |
- 返回
-
◆ setLogFilter()
virtual int agora::rtc::IMediaPlayer::setLogFilter |
( |
unsigned int |
filter | ) |
|
|
pure virtual |
设置输出日志的过滤等级
设置 MediaPlayer Kit 的输出日志的过滤等级。过滤等级从低到高分别为 OFF,DEBUG,INFO,WARN,ERROR, CRITICAL。选择一个过滤等级,你就可以看到在该等级之前的所有等级的日志信息,详见 filter
参数描述。
- 参数
-
filter | 设置日志过滤等级:
LOG_FILTER_OFF (0) : 不输出任何日志。
LOG_FILTER_DEBUG (0x80f) : 输出所有的日志。
LOG_FILTER_INFO (0x0f) : (推荐取值)输出 INFO,WARN,ERROR,CRITICAL 等级的日志。
LOG_FILTER_WARN (0x0e) : 输出 WARN,ERROR,CRITICAL 等级的日志。
LOG_FILTER_ERROR (0x0c) : 输出 ERROR,CRITICAL 等级的日志。
LOG_FILTER_CRITICAL (0x08) : 输出 CRITICAL 等级的日志。
|
- 返回
-
◆ changePlaybackSpeed()
调节播放速度
请在 play() 后调用该方法。
- 参数
-
- 返回
-
◆ selectAudioTrack()
virtual int agora::rtc::IMediaPlayer::selectAudioTrack |
( |
int |
index | ) |
|
|
pure virtual |
设置使用的音轨
如果媒体资源含有多个音轨,你可以调用该方法设置你想使用的音轨。
- 参数
-
- 返回
-
◆ setPlayerOption() [1/2]
virtual int agora::rtc::IMediaPlayer::setPlayerOption |
( |
const char * |
key, |
|
|
int |
value |
|
) |
| |
|
pure virtual |
设置 MediaPlayer Kit 私有选项
MediaPlayer Kit 支持通过 key
和 value
来设置私有选项。一般情况下,你无需知晓私有选项设置,使用 Player 默认的选项设置即可。
- 注解
- 请确保在 open 之后调用该方法。
- 参数
-
- 返回
-
◆ setPlayerOption() [2/2]
virtual int agora::rtc::IMediaPlayer::setPlayerOption |
( |
const char * |
key, |
|
|
const char * |
value |
|
) |
| |
|
pure virtual |
设置 MediaPlayer Kit 私有选项
MediaPlayer Kit 支持通过 key
和 value
来设置私有选项。一般情况下,你无需知晓私有选项设置,使用 Player 默认的选项设置即可。
- 注解
- 请确保在 open 之后调用该方法。
- 参数
-
- 返回
-
◆ takeScreenshot()
virtual int agora::rtc::IMediaPlayer::takeScreenshot |
( |
const char * |
filename | ) |
|
|
pure virtual |
◆ setExternalSubtitle()
virtual int agora::rtc::IMediaPlayer::setExternalSubtitle |
( |
const char * |
url | ) |
|
|
pure virtual |
设置外挂字幕
调用 open 方法成功打开媒体文件后,你可以调用本方法设置播放器显示外挂字幕。支持 SRT 和 ASS 类型的字幕。
- 参数
-
url | 外挂字幕的 URL 地址。支持本地地址和在线地址。 |
- 返回
-
◆ setLoopCount()
virtual int agora::rtc::IMediaPlayer::setLoopCount |
( |
int |
loopCount | ) |
|
|
pure virtual |
设置循环播放
如果你希望循环播放,请调用该方法并设置循环播放次数。
循环播放结束时,MediaPlayer Kit 会返回 PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED
- 参数
-
- 返回
-
◆ getPlayerSdkVersion()
virtual const char* agora::rtc::IMediaPlayer::getPlayerSdkVersion |
( |
| ) |
|
|
pure virtual |
获取 MediaPlayer Kit 版本号
- 返回
- 当前使用的 Player 的版本号,如
"1.2.1"
◆ switchSrc()
virtual int agora::rtc::IMediaPlayer::switchSrc |
( |
const char * |
src, |
|
|
bool |
syncPts = true |
|
) |
| |
|
pure virtual |
切换正在播放的媒体资源。
你可以根据当前网络状态调用该方法切换播放的媒体资源。例如,在网络较差时,将播放的媒体资源切换为较低码率的媒体资源地址;在网络较好时,将播放的媒体资源切换为较高码率的媒体资源地址。
调用 switchSrc
后,如果你收到 onPlayerEvent 回调报告事件 PLAYER_EVENT_SWITCH_COMPLETE
,则切换成功;如果你收到 onPlayerEvent 回调报告事件 PLAYER_EVENT_SWITCH_ERROR
,则切换失败。
- 注解
- 请确保在 open 之后调用该方法。
- 为保证播放正常,请在调用
switchSrc(src, true)
时注意如下:
- 不要在播放暂停时调用该方法。
- 不要在切换过程中调用 seek。
- 确保切换前的播放位置不大于待切换的媒体资源总时长。
- 参数
-
src | 待切换的媒体资源 URL 地址,支持本地和 HTTP、RTMP 和 RTSP 协议的在线媒体流。 |
syncPts | 是否同步切换前后的播放位置(毫秒):
|
- 返回
-
◆ addPreloadSrc()
virtual int agora::rtc::IMediaPlayer::addPreloadSrc |
( |
const char * |
src, |
|
|
int64_t |
startPos |
|
) |
| |
|
pure virtual |
预加载媒体资源。
你可以调用该方法将一个媒体资源预加载到播放列表中。如果需要预加载多个媒体资源,你可以多次调用该方法。
调用 addPreloadSrc
后,如果收到 onPreloadEvent 回调报告事件 PLAYER_PRELOAD_EVENT_COMPLETE
,则预加载成功;如果你收到 onPreloadEvent 回调报告事件 PLAYER_PRELOAD_EVENT_ERROR
,预加载失败。
预加载成功后,如果你想播放媒体资源,请调用 playPreload;如果你想清空播放列表,请调用 stop。
- 注解
- Agora 不支持你预加载重复的媒体资源到播放列表,但支持你将正在播放的媒体资源再次预加载到播放列表。
- 参数
-
src | 预加载的媒体资源 URL 地址,支持本地和 HTTP、RTMP 和 RTSP 协议的在线媒体流。 |
startPos | 预加载到播放列表后,开始播放时的起始位置(毫秒)。预加载直播流时,将 startPos 设为 0。 |
- 返回
-
◆ playPreload()
virtual int agora::rtc::IMediaPlayer::playPreload |
( |
const char * |
src | ) |
|
|
pure virtual |
播放预加载的媒体资源。
该方法仅支持播放已预加载到播放列表中的媒体资源。调用该方法后,如果你收到 onPlayerStateChanged 回调报告状态 PLAYER_STATE_PLAYING
,播放成功。
如果你想更换播放的预加载媒体资源,你可以再次调用该方法并指定新的媒体资源路径。 如果你想重新播放媒体资源,你需要在播放前调用 addPreloadSrc 重新将该媒体资源预加载到播放列表。 如果你想清空播放列表,请调用 stop。
- 注解
- 如果你在播放暂停时调用该方法,该方法会在恢复播放后才生效。
- 参数
-
- 返回
-
◆ release()
virtual void agora::rtc::IMediaPlayer::release |
( |
bool |
sync = true | ) |
|
|
pure virtual |