技术经验分享:AVFoundation播放视频时显示字幕,切换音轨

简介: 技术经验分享:AVFoundation播放视频时显示字幕,切换音轨

"

主要用到两个类:AVMediaSelectionGroup 和 AVMediaSelectionOption

调用 AVAsset对象的availableMediaCharacteristicsWithMediaSelectionOptions会返回一个数组,这个数组包含视频中备用的媒体资源,AVMediaCharacteristicLegible字幕资源,AVMediaCharacteristicAudible 音轨资源,AVMediaCharacteristicVisual 视频资源。

显示字幕和切换音轨方法都是一样的,这里以显示字幕为例:

1. AVMediaSelectionGroup*group =【asset mediaSelectionGroupForMediaCharacteristic:AVMediaCharacteristicLegible】;

for(AVMediaSelectionOption*option in group.options) {

NSLog(@""%@"",option.displayName);

}

NSLocale*locale = 【NSLocale localeWithLocaleIdentifier:@""en_US""】;

2. NSArray*options = //代码效果参考:https://v.youku.com/v_show/id_XNjQwMDM5NTUwMA==.html

【AVMediaSelectionGroup mediaSelectionOptionsFromArray:group.options withLocale:locale】;

3. 【playItem selectMediaOption:options.firstObject inMediaSelectionGroup:group】;

1.获取可用的字幕资源。

2016-03-03 15:08:15.438 VideoPlayer【13403:1004146】英文

2016-03-03 15:08:15.441 VideoPlayer【13403:1004146】英文Forced

2016-03-03 15:08:15.441 VideoPlayer【13403:1004146】意大利文

2016-03-03 15:08:15.442 VideoPlayer【13403:1004146】意大利文Forced

2016-03-03 15:08:15.442 VideoPlayer【13403:1004146】葡萄牙文

2016-03-03 15:08:15.443 //代码效果参考:https://v.youku.com/v_show/id_XNjQwNjg0NjAzMg==.html

VideoPlayer【13403:1004146】葡萄牙文Forced

2016-03-03 15:08:15.443 VideoPlayer【13403:1004146】俄文

2016-03-03 15:08:15.443 VideoPlayer【13403:1004146】俄文Forced

2.获取指定地区的字幕资源。

3. 添加指定字幕到播放器中。

文/yoolooo(简书作者)

原文链接:

著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。


"
image.png
相关文章
|
5月前
|
自然语言处理 程序员 Windows
[UE虚幻引擎] DTSpeechVoice 文字转语音播放 插件说明
这个插件用于在虚幻引擎(UE)中通过蓝图将文本转化为语音播放,利用Windows内置的语音引擎,支持Win10和Win11。确保电脑已安装语音系统,可能需要额外下载语言包以支持多语言播放。蓝图操作包括添加Speech Voice Component到Actor,使用Speak节点播放文本,Set Volume调整音量,Set Rate改变播放速度,Pause和Resume控制播放状态,Stop则停止播放且无法恢复。此外,Get Tokens和Set Token用于管理语音类型。更多详情可访问[80后程序员](https://dt.cq.cn/archives/1008?from=aliyun)
69 5
|
6月前
短视频 TXUGCRecord工具如何全屏显示
短视频 TXUGCRecord工具如何全屏显示
46 0
|
6月前
|
XML Java 调度
Android开发音效增强中铃声播放Ringtone及声音池调度SoundPool的讲解及实战(超详细 附源码)
Android开发音效增强中铃声播放Ringtone及声音池调度SoundPool的讲解及实战(超详细 附源码)
308 0
|
6月前
uniapp制作录音播放功能
uniapp制作录音播放功能
216 0
|
6月前
|
XML 存储 Java
Android 开发音频录播中媒体录制器MediaRecorder和媒体播放器MediaPlayer的讲解及实战(超详细 附源码)
Android 开发音频录播中媒体录制器MediaRecorder和媒体播放器MediaPlayer的讲解及实战(超详细 附源码)
114 0
|
6月前
|
XML Java Android开发
Android App开发音量调节中实现拖动条和滑动条和音频管理器AudioManager讲解及实战(超详细 附源码和演示视频)
Android App开发音量调节中实现拖动条和滑动条和音频管理器AudioManager讲解及实战(超详细 附源码和演示视频)
258 0
|
6月前
|
存储
uniapp录音功能和音频播放功能制作
uniapp录音功能和音频播放功能制作
398 0
[笔记]音视频学习之SDL篇《十三》播放音乐和特效
[笔记]音视频学习之SDL篇《十三》播放音乐和特效
|
存储 JSON 移动开发
基于Qt的网络音乐播放器(五)实现歌词滚动显示
基于Qt的网络音乐播放器(五)实现歌词滚动显示
基于Qt的网络音乐播放器(五)实现歌词滚动显示
|
开发工具 iOS开发 git
iOS音频播放器锁屏歌词显示与性能优化
iOS音频播放器锁屏歌词显示与性能优化
269 0