AgoraMediaPlayer Class Reference
Inherits from | NSObject |
---|---|
Declared in | AgoraMediaPlayerKit.h |
mute
是否静音:
@property (nonatomic, assign) BOOL mute
Discussion
- YES: 静音
- NO: 不静音
Declared In
AgoraMediaPlayerKit.h
volume
本地播放音量。取值范围 0 到 100。 0 为无声,100 为媒体资源的原始音量。
@property (nonatomic, assign) NSInteger volume
Declared In
AgoraMediaPlayerKit.h
state
播放状态,详见 AgoraMediaPlayerState
@property (nonatomic, readonly) AgoraMediaPlayerState state
Declared In
AgoraMediaPlayerKit.h
– initWithDelegate:
创建一个 AgoraMediaPlayer 实例
- (instancetype)initWithDelegate:(id<AgoraMediaPlayerDelegate>)delegate
Parameters
delegate |
---|
Return Value
一个 AgoraMediaPlayer 实例
Declared In
AgoraMediaPlayerKit.h
– initWithDelegate:voiceChatMode:
创建一个 AgoraMediaPlayer 实例
- (instancetype)initWithDelegate:(id<AgoraMediaPlayerDelegate>)delegate voiceChatMode:(bool)enableVoiceChatMode
Parameters
delegate |
|
---|---|
enableVoiceChatMode |
是否使用通话音量:
|
Return Value
一个 AgoraMediaPlayer 实例
Discussion
Note:
- 当你同时使用 Agora RTC Native SDK 和 MediaPlayer Kit 时,如果 Native SDK 设置 audio scenario 是
GameStreaming(3)
,Agora 推荐你设置 MediaPlayer Kit 使用媒体音量,并且同时集成 helper。 - 当你同时使用 Agora RTC Native SDK 和 MediaPlayer Kit 时,如果 Native SDK 设置 audio scenario 不是
GameStreaming(3)
,Agora 推荐你设置 MediaPlayer Kit 使用通话音量。
Declared In
AgoraMediaPlayerKit.h
– setView:
设置播放器的渲染视图
- (void)setView:(View *_Nullable)view
Parameters
view |
视频渲染视图 |
---|
Declared In
AgoraMediaPlayerKit.h
– setRenderMode:
设置播放器视图的渲染模式
- (void)setRenderMode:(AgoraMediaPlayerRenderMode)mode
Parameters
mode |
播放器视图的渲染模式,详见 AgoraMediaPlayerRenderMode |
---|
Declared In
AgoraMediaPlayerKit.h
– open:startPos:
打开媒体文件
- (void)open:(NSString *)url startPos:(NSInteger)startPos
Parameters
url |
媒体文件的路径。支持本地路径和网络路径。 |
---|---|
startPos |
设置起始播放位置 (毫秒),默认值为 0 |
Declared In
AgoraMediaPlayerKit.h
– play
播放媒体文件
- (void)play
Discussion
打开 open 媒体文件、 定位 seekToPosition 到媒体文件的指定播放位置或暂停 pause 播放媒体文件后,你可以调用该方法播放媒体文件。
Note:
MediaPlayer Kit only supports playing videos with framerate below 60fps (not including 60fps).
Declared In
AgoraMediaPlayerKit.h
– seekToPosition:
定位到媒体文件的指定播放位置
- (void)seekToPosition:(NSInteger)position
Parameters
position |
指定的位置 (毫秒) |
---|
Declared In
AgoraMediaPlayerKit.h
– mute:
设置是否静音
- (int)mute:(bool)isMute
Parameters
isMute |
静音选项:
|
---|
Return Value
- 0: 方法调用成功
- < 0: 方法调用失败,详见 AgoraMediaPlayerError
Declared In
AgoraMediaPlayerKit.h
– getMute
获取当前的静音状态
- (bool)getMute
Return Value
- 方法调用成功,返回:
- YES: 静音
- NO: (默认)不静音
- 方法调用失败,返回 NO
Declared In
AgoraMediaPlayerKit.h
– adjustVolume:
调节本地播放音量
- (int)adjustVolume:(int)volume
Parameters
volume |
本地播放音量,取值范围从 0 到 100: - 0: 无声 - 100: (默认)媒体文件的原始播放音量 |
---|
Return Value
- 0: 方法调用成功
- < 0: 方法调用失败,详见 AgoraMediaPlayerError
Declared In
AgoraMediaPlayerKit.h
– getPlayPosition
获取当前播放进度
- (NSInteger)getPlayPosition
Return Value
- < 0: 方法调用失败,详见 AgoraMediaPlayerError
- 其他:播放进度 (毫秒)
Declared In
AgoraMediaPlayerKit.h
– getDuration
获取媒体文件总时长
- (NSInteger)getDuration
Return Value
- < 0: 方法调用失败,详见 AgoraMediaPlayerError
- 其他:媒体文件总时长 (毫秒)
Declared In
AgoraMediaPlayerKit.h
– getPlayerState
获取播放器当前状态
- (AgoraMediaPlayerState)getPlayerState
Return Value
- 方法调用成功,返回播放器当前状态 详见 AgoraMediaPlayerState
- 方法调用失败,返回 nil
Declared In
AgoraMediaPlayerKit.h
– getStreamCount
获取该媒体文件中媒体流的数量
- (NSInteger)getStreamCount
Return Value
- < 0: 方法调用失败,详见 AgoraMediaPlayerError
- 其他:该媒体文件中媒体流的数量
Declared In
AgoraMediaPlayerKit.h
– getStreamByIndex:
获取媒体流信息
- (AgoraMediaStreamInfo *_Nullable)getStreamByIndex:(int)index
Parameters
index |
媒体流索引值 |
---|
Return Value
- 方法调用成功,返回媒体流信息,详见 AgoraMediaStreamInfo
- 方法调用失败,返回 nil
Declared In
AgoraMediaPlayerKit.h
– setLogFile:
设置日志文件
- (void)setLogFile:(NSString *)filePath
Parameters
filePath |
日志文件的完整路径。该日志文件为 UTF-8 编码。 |
---|
Discussion
设置 MediaPlayer Kit 的输出 log 文件。MediaPlayer Kit 运行时产生的所有 log 将写入该文件。App 必须保证指定的目录存在而且可写。
Note:
- MediaPlayer Kit 的默认日志路径为
App Sandbox/Library/caches/agoraplayer.log
。 - 如需调用本方法,请在创建 AgoraMediaPlayerKit 后立即调用,否则可能造成输出日志不完整。
Declared In
AgoraMediaPlayerKit.h
– setLogFilter:
设置日志过滤等级
- (void)setLogFilter:(NSInteger)filter
Parameters
filter |
设置过滤器等级。按照输出日志最全到最少排列:
|
---|
Discussion
该方法设置 MediaPlayer Kit 的输出日志过滤等级。不同的过滤等级可以单独或组合使用。日志级别顺序依次为 OFF、 CRITICAL、ERROR、WARNING、INFO 和 DEBUG。选择一个级别,你就可以看到在该级别之前所有级别的 日志信息。 例如,你选择 WARNING 级别,就可以看到在 CRITICAL、ERROR 和 WARNING 级别上的所 有日志信息。
Declared In
AgoraMediaPlayerKit.h
– setPlayerOptionInt:value:
设置 MediaPlayer Kit 私有选项
- (void)setPlayerOptionInt:(NSString *)key value:(NSInteger)value
Parameters
key |
key 值 |
---|---|
value |
value 值 |
Discussion
MediaPlayer Kit 支持通过 key 和 value 来设置私有选项。一般情况下,你无需知晓私有选项设置,使用 Player 默认的选项设置即可。
Note: 请确保在 open 之前调用该方法。
Declared In
AgoraMediaPlayerKit.h
– setPlayerOptionString:value:
设置 MediaPlayer Kit 私有选项
- (void)setPlayerOptionString:(NSString *)key value:(NSString *)value
Parameters
key |
key 值。 |
---|---|
value |
value 值。 |
Discussion
MediaPlayer Kit 支持通过 key 和 value 来设置私有选项。一般情况下,你无需知晓私有选项设置,使用 Player 默认的选项设置即可。
Note: 请确保在 open 之前调用该方法。
Declared In
AgoraMediaPlayerKit.h
– changePlaybackSpeed:
改变播放速度
- (void)changePlaybackSpeed:(AgoraMediaPlayerSpeed)speed
Parameters
speed |
播放速度,详见 AgoraMediaPlayerSpeed |
---|
Discussion
打开 (open) 媒体文件后,你可以调用本方法改变播放速度。
Declared In
AgoraMediaPlayerKit.h
– selectAudioTrack:
选择播放时使用的音轨
- (void)selectAudioTrack:(NSInteger)index
Parameters
index |
音轨的 index |
---|
Discussion
打开 (open) 媒体文件后,你可以调本方法选择播放时使用的音轨。
调用本方法前,请调用 getStreamByIndex 方法获取当前媒体流的音轨信息 AgoraMediaStreamInfo。
其中的 streamIndex 值即为本方法的 index
值。
Declared In
AgoraMediaPlayerKit.h
– getPlayerSdkVersion
获取 MediaPlayer Kit 版本号
- (NSString *)getPlayerSdkVersion
Return Value
当前使用的 Player 的版本号,如 "1.2.1"
Declared In
AgoraMediaPlayerKit.h
– setLoopCount:
设置循环播放
- (void)setLoopCount:(NSInteger)loopCount
Parameters
loopCount |
循环播放的次数。 |
---|
Discussion
如果你希望循环播放,请调用该方法并设置循环播放次数。
循环播放结束时,Player 会返回 AgoraMediaPlayerStatePlayBackAllLoopsCompleted(6)
Declared In
AgoraMediaPlayerKit.h
– destroy
销毁 AgoraMediaPlayer 实例
- (void)destroy
Discussion
调用该方法后,你将无法再使用 Player 提供的其他 API。如果你需要重新使用 Player, 你需要调用 initWithDelegate 方法,重新创建一个 AgoraMediaPlayer 实例。
Note:
- 该方法为同步调用。为避免死锁,Agora 建议你不要在回调中调用该方法。
- 如果你需要在销毁后再次创建 AgoraMediaPlayer 实例,请等待本方法执行结束后再创建。
Declared In
AgoraMediaPlayerKit.h
– setExternalSubtitle:
设置外挂字幕(仅适用于 macOS)
- (void)setExternalSubtitle:(NSString *)url
Parameters
url |
外接字幕的 URL 地址。支持本地地址和在线地址。 |
---|
Discussion
调用 open 方法成功打开媒体文件后,你可以调用本方法设置播放器显示外接字幕。
Note: 调用该方法前,请确保已设置为软件解码:
[_mediaPlayerKit setPlayerOptionInt:@"video_decoder_type" value:1];
或 [_mediaPlayerKit setPlayerOptionString:@"media_format" value:@"mp4"];
Declared In
AgoraMediaPlayerKit.h
– switchSrc:syncPts:
切换正在播放的媒体资源。
- (void)switchSrc:(NSString *)src syncPts:(BOOL)syncPts
Parameters
src |
待切换的媒体资源 URL 地址,支持本地和 HTTP、RTMP 和 RTSP 协议的在线媒体流。 |
---|---|
syncPts |
是否同步切换前后的播放位置(毫秒):
Note: Agora 仅支持在播放点播流时,将
|
Discussion
你可以根据当前网络状态调用该方法切换播放的媒体资源。例如,在网络较差时,将播放的媒体资源切换为较低码率的媒体资源地址;在网络较好时,将播放的媒体资源切换为较高码率的媒体资源地址。
调用 switchSrc
后,如果你收到 didOccurEvent 回调报告事件 AgoraMediaPlayerEventSwitchComplete(9)
,则切换成功;如果你收到 didOccurEvent 回调报告事件 AgoraMediaPlayerEventSwitchError(10)
,则切换失败。
Note:
- 请确保在 open 之后调用该方法。
- 为保证播放正常,请在调用
switchSrc(src, true)
时注意如下: - 不要在播放暂停时调用该方法。
- 不要在切换过程中调用 seekToPosition。
- 确保切换前的播放位置不大于待切换的媒体资源总时长。
Declared In
AgoraMediaPlayerKit.h
– addPreloadSrc:startPos:
预加载媒体资源。
- (void)addPreloadSrc:(NSString *)src startPos:(NSInteger)startPos
Parameters
src |
预加载的媒体资源 URL 地址,支持本地和 HTTP、RTMP 和 RTSP 协议的在线媒体流。 |
---|---|
startPos |
预加载到播放列表后,开始播放时的起始位置(毫秒)。预加载直播流时,将 |
Discussion
你可以调用该方法将一个媒体资源预加载到播放列表中。如果需要预加载多个媒体资源,你可以多次调用该方法。
调用 addPreloadSrc
后,如果收到 didPreloadEvent 回调报告事件 AgoraMediaPlayerPreloadEventComplete(9)
,则预加载成功;如果你收到 didPreloadEvent 回调报告事件 PLAYER_EVENT_SWITCH_ERROR(10),预加载失败。
预加载成功后,如果你想播放媒体资源,请调用 playPreload;如果你想清空播放列表,请调用 stop。
Note:
Agora 不支持你预加载重复的媒体资源到播放列表,但支持你将正在播放的媒体资源再次预加载到播放列表。
Declared In
AgoraMediaPlayerKit.h
– playPreload:
播放预加载的媒体资源。
- (void)playPreload:(NSString *)src
Parameters
src |
播放列表中的媒体资源 URL 地址,必须与 addPreloadSrc 方法设置的 |
---|
Discussion
该方法仅支持播放已预加载到播放列表中的媒体资源。调用该方法后,如果你收到 didChangedToState 回调报告状态 AgoraMediaPlayerStatePlaying(3)
,播放成功。
如果你想更换播放的预加载媒体资源,你可以再次调用该方法并指定新的媒体资源路径。 如果你想重新播放媒体资源,你需要在播放前调用 addPreloadSrc 重新将该媒体资源预加载到播放列表。 如果你想清空播放列表,请调用 stop。
Note:
如果你在播放暂停时调用该方法,该方法会在恢复播放后才生效。
Declared In
AgoraMediaPlayerKit.h