AgoraMediaSource
需播放的媒体文件的相关信息及播放设置。
Objective-C
__attribute__((visibility("default"))) @interface AgoraMediaSource : NSObject
@property(copy, nonatomic) NSString *_Nullable url;
@property(copy, nonatomic) NSString *_Nullable uri;
@property(assign, nonatomic) NSUInteger startPos;
@property(assign, nonatomic) BOOL enableCache;
@property(assign, nonatomic) BOOL autoPlay;
@property(assign, nonatomic) BOOL isAgoraSource;
@property(assign, nonatomic) BOOL isLiveSource;
@property(copy, nonatomic) AgoraRtcMediaPlayerCustomSourceOnReadCallback _Nonnull playerOnReadCallback;
@property(copy, nonatomic) AgoraRtcMediaPlayerCustomSourceOnSeekCallback _Nonnull playerOnSeekCallback;
@end
@end
url
需要播放的媒体资源的 URL。
注:
如果你打开的为普通媒体资源,请向 url
传值;如果你打开媒体资源为自定义媒体资源,请向 playerOnReadCallback
及 playerOnSeekCallback
传值,同时传值会导致方法调用失败。
uri
媒体文件的 URI(Uniform Resource Identifier),可用于标识媒体文件。
startPos
设置起始播放位置 (毫秒),默认值为 0。
autoPlay
enableCache
此次播放是否开启实时缓存功能:
YES
:开启实时缓存。NO
:(默认)关闭实时缓存。
- SDK 目前仅支持缓存点播流,但不支持缓存通过 HLS 协议传输的点播流。
- 缓存前,请向
uri
传值,否则播放器会以媒体文件的url
作为缓存索引。 - 开启实时缓存后,播放器会预先缓存当前正在播放的媒体文件的部分数据到本地,当你下次播放该文件时播放器会直接从缓存中加载数据,可节省网络流量。当前缓存的媒体文件的相关统计数据会在媒体文件开始播放后每秒更新一次,详见
AgoraMediaPlayerCacheStatistics
。
isAgoraSource
打开的媒体资源是否为通过声网融合 CDN 分发的直播或点播流:
YES
:打开的媒体资源是声网融合 CDN 分发的直播或点播流。NO
:(默认)打开的媒体资源不是声网融合 CDN 分发的直播或点播流。
如果你需要打开的媒体资源为声网融合 CDN 分发的直播流或点播流,请向
url
传入直播或点播流的 URL 并将 isAgoraSource
设置为 YES
,否则无需设置 isAgoraSource
。isLiveSource
打开的媒体资源是否为直播流:
YES
:直播流。NO
:(默认)非直播流。
如果你打开的媒体资源为直播流,建议你将该参数设置为
YES
,可加快打开直播流的速度。注:
仅当打开的媒体资源为直播流时,将
isLiveSource
设置为 YES
后才可加快媒体资源的打开速度。playerOnReadCallback
读取媒体资源数据回调。详见 AgoraRtcMediaPlayerCustomSourceOnReadCallback
。
注:
如果你打开的为普通媒体资源,请向 url
传值;如果你打开媒体资源为自定义媒体资源,请向 playerOnReadCallback
及 playerOnSeekCallback
传值,同时传值会导致方法调用失败。
playerOnSeekCallback
定位媒体资源数据回调。详见 AgoraRtcMediaPlayerCustomSourceOnSeekCallback
。
注:
如果你打开的为普通媒体资源,请向 url
传值;如果你打开媒体资源为自定义媒体资源,请向 playerOnReadCallback
及 playerOnSeekCallback
传值,同时传值会导致方法调用失败。