ios – 如何使用AVPlayer在备用音频流之间切换

ios – 如何使用AVPlayer在备用音频流之间切换,第1张

概述我有一个测试应用程序,它使用AVPlayer播放由m3u8 HLS播放列表指定的视频.播放列表指定了几个备用音频流,类似于Apple提供的“清单10”示例播放列表: http://developer.apple.com/library/ios/#technotes/tn2288/_index.html#//apple_ref/doc/uid/DTS40012238-CH1-ALTERNATE_ME 我有一个测试应用程序,它使用AVPlayer播放由m3u8 HLS播放列表指定的视频.播放列表指定了几个备用音频流,类似于Apple提供的“清单10”示例播放列表: http://developer.apple.com/library/ios/#technotes/tn2288/_index.html#//apple_ref/doc/uid/DTS40012238-CH1-ALTERNATE_MEDIA应用程序需要能够在视频播放时在备用音频流之间切换.例如,应用程序应该能够在视频播放时通过用户点击应用程序中的按钮在英语,法语和西班牙语音频流之间切换.

AVPlayer及其相关对象将使用哪些AVFoundation类和方法来切换m3u8播放列表中指定的音频流?我查看了AVFoundation类文档,但没有看到如何执行此 *** 作.

指向如何执行此 *** 作的示例代码的链接将非常棒.我一直在网上搜索这些信息但没有成功.感谢您对此的任何帮助.

解决方法 对于使用AVPlayer播放m3u8,看起来您无法使用AVAsset构建AVPlayerItem.您需要直接从URI构造AVPlayerItem.在使用此AVPlayerItem实例化AVPlayer,然后KVO侦听属性@“status”时,如果状态为AVPlayerStatusReadytoplay,则[[avPlayerInstance currentItem]资产]中将有一个资产.这在 AV Foundation Programming Guide的第20页中有描述.

要将音频更改为各种替换使用:

AVMediaSelectionGroup *audioSelectionGroup = [[[avPlayerInstance currentItem] asset] mediaSelectionGroupForMediaCharacteristic: AVMediaCharacteristicAudible];NSLog(@"audioSelectionGroup: %@",audioSelectionGroup);// [audioSelectionGroup options] // Array of the options in the group above.

并选择AVMediaSelectionoption(您想要的音频通道):

[[avPlayerInstance currentItem] selectMediaOption:avMediaSelectionoptionInstance] inMediaSelectionGroup: audioSelectionGroup];

这同样适用于视频.

这在AV Foundation Release Notes for IOS 5(第3部分)的“根据语言和其他标准选择音频和字幕媒体”部分中进行了描述.

总结

以上是内存溢出为你收集整理的ios – 如何使用AVPlayer在备用音频流之间切换全部内容,希望文章能够帮你解决ios – 如何使用AVPlayer在备用音频流之间切换所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1108455.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存