技术经验分享: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
相关文章
|
存储 iOS开发
iOS 内购 payment.applicationUsername 的坑
iOS 内购 payment.applicationUsername 的坑
512 0
|
JSON 自然语言处理 编译器
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
前言包大小是衡量APP性能的一项重要指标,它直接影响用户的下载点击率(包太大不想下)、下载安装成功率(下载慢不用了)、APP卸载率(太占空间先删掉)。包大小的计算逻辑很简单,它是各种类型的文件占用磁盘大小相加。APP瘦身的技术却很复杂,代码文件的复杂度和编译器策略决定了可执行文件的大小,业务功能和工程架构决定了代码文件的复杂度。iOS APP瘦身,需要掌握的技能有XCode构建技术、LLVM编译器
4400 0
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
|
存储 JavaScript
uniapp (vue3)生成二维码
uniapp (vue3)生成二维码
945 0
|
自然语言处理 BI 数据处理
【数据对比】综合分析百度情感分析以及华为情感分析的差异,我有了如下结果
【数据对比】综合分析百度情感分析以及华为情感分析的差异,我有了如下结果
516 0
|
10月前
|
缓存 前端开发 API
鸿蒙应用开发:下载功能
鸿蒙应用开发:下载功能
433 1
|
程序员
程序员必知:Word设置标题以及多级自动编号——保姆级教程
程序员必知:Word设置标题以及多级自动编号——保姆级教程
257 0
|
数据可视化 前端开发 JavaScript
前端框架与库-D3.js数据可视化基础
【7月更文挑战第21天】D3.js是Web开发中创建动态、交互图表的利器,适用于从基础条形图到复杂地理热力图的广泛需求。核心概念涉及数据绑定至DOM,支持动态更新。初学者常遇难题包括不当数据绑定、选择器误用、过渡动画过量及坐标轴配置失误。避免策略需善用`.data()`, `.enter().append()`, `.exit().remove()`管理数据,熟知选择器差异,适度应用`.transition()`, 并精准设定坐标轴。示例条形图代码展示了数据绑定至`<rect>`元素的过程,奠定基础,助你进阶复杂项目。
294 4
|
Android开发
Android Activity跳转详解
Android Activity跳转详解
969 0
|
存储 Ubuntu
Ubuntu查看系统日志的几种方法
Ubuntu查看系统日志的几种方法
|
存储 JSON JavaScript
HarmonyOS应用开发者基础认证 模拟考试 题库
HarmonyOS应用开发者基础认证 模拟考试 题库
1832 0

热门文章

最新文章