AgoraMediaSource
需播放的媒体文件的相关信息及播放设置。
__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
- 打开媒体文件后,是否开启自动播放:
YES
:(默认)开启自动播放。NO
:关闭自动播放。
注:如果你设置关闭自动播放,打开媒体文件后,请调用 play 方法来播放媒体文件。
- 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 传值,同时传值会导致方法调用失败。