媒体资源打开

  • macOS

更新时间不可用

open:startPos:

打开媒体资源。

Objective-C
- (int)open:(NSString *)url startPos:(NSInteger)startPos NS_SWIFT_NAME(open(_:startPos:));

注: 该方法为异步调用。

调用时机

该方法可以在加入频道前或加入频道后调用。

相关回调

成功调用该方法后,SDK 会触发 didChangedToState:reason: 回调。在收到播放状态为 AgoraMediaPlayerStateOpenCompleted 的报告后,可以调用 play 方法播放媒体文件。

参数

参数名描述
url

媒体文件的路径,支持本地路径和在线路径。

startPos

播放的起始位置(毫秒)。默认值为 0。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

openWithMediaSource:

打开媒体文件并配置播放场景。

Objective-C
- (int)openWithMediaSource:(AgoraMediaSource *)source NS_SWIFT_NAME(open(with:));

该方法支持打开不同类型的媒体文件,包括以 ipod-library:// 开头的文件,并设置播放选项。

注: openWithMediaSource: 为异步调用。如果你需要播放媒体文件,请确保在调用 play 方法播放文件之前,已收到 AgoraRtcMediaPlayer:didChangedToState:reason: 回调并报告 AgoraMediaPlayerStateOpenCompleted。

调用时机

你可以在加入频道前或加入频道后调用该方法。

参数

参数名描述
source

媒体资源。详见 AgoraMediaSource。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

preloadSrc:startPos:

预加载媒体资源。

Objective-C
- (int)preloadSrc:(NSString *)src startPos:(int)startPos NS_SWIFT_NAME(preloadSrc(_:startPos:));

你可以调用此方法将媒体资源预加载到播放列表中。如果需要预加载多个媒体资源,可以多次调用此方法。如果预加载成功并希望播放该媒体资源,请调用 playPreloadedSrc:;如果希望清空播放列表,请调用 stop。

注:

  • 在调用此方法之前,请确保已成功调用 open:startPos: 或 openWithMediaSource: 打开媒体资源。
  • 不支持将重复的媒体资源预加载到播放列表中。但你可以将正在播放的媒体资源再次预加载到播放列表中。

参数

参数名描述
src

媒体资源的 URL。

startPos

媒体资源预加载到播放列表后开始播放的位置(毫秒)。预加载直播流时,将该参数设置为 0。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

switchSrc:syncPts:

切换正在播放的媒体资源。

Objective-C
- (int)switchSrc:(NSString *)src syncPts:(BOOL)syncPts NS_SWIFT_NAME(switchSrc(_:syncPts:));

你可以根据当前的网络状态调用该方法切换要播放的媒体资源。例如:

  • 当网络较差时,将播放的媒体资源切换为码率较低的媒体资源地址。
  • 当网络良好时,将播放的媒体资源切换为码率较高的媒体资源地址。

注: 确保在调用该方法前已调用 open:startPos: 方法。 为确保正常播放,调用该方法时请注意以下事项:

  • 播放暂停时不要调用该方法。
  • 切换过程中不要调用 seekToPosition: 方法。
  • 切换媒体资源前,请确保播放位置未超过要切换的媒体资源的总时长。

相关回调

成功调用该方法后,SDK 会触发 didOccurEvent:elapsedTime:message: 回调报告 AgoraMediaPlayerEventSwitchComplete 事件表示切换成功。如果切换失败,SDK 会自动重试 3 次,若仍失败,会触发 didOccurEvent:elapsedTime:message: 回调报告 AgoraMediaPlayerEventSwitchError 事件表示切换出错。

参数

参数名描述
src

媒体资源的 URL 地址。

syncPts

是否在切换前后同步播放位置(毫秒):

  • YES:同步切换前后的播放位置。
  • NO:(默认)不同步切换前后的播放位置。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

unloadSrc:

卸载你预加载的媒体资源。

Objective-C
- (int)unloadSrc:(NSString *)src NS_SWIFT_NAME(unloadSrc(_:));

注: unloadSrc: 方法无法释放正在播放的媒体资源。

参数

参数名描述
src

媒体资源的 URL。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类