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 = [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 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. 添加指定字幕到播放器中。
原文链接:http://www.jianshu.com/p/5f147f40f9f3
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
AVFoundation播放视频时显示字幕,切换音轨的更多相关文章
- DragVideo,一种在播放视频时,可以任意拖拽的方案
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/53638896 前言 项目已开源到 ...
- 在使用html5的video标签播放视频时为何只有声音却没有图像
在使用html5的video标签播放视频时为何只有声音却没有图像? 答:使用格式化工厂转个编码就行了,MP4有3种编码,mpg4(xdiv),,mpg4(xvid),avc(h264)转换成H264编 ...
- 关于MPMoviePlayerController类播放视频时,外放没有声音的问题(ios)
一.导入音频资源类 #import "AVFoundation/AVAudioSession.h" 二.在播放视频的方法中加一句支持外放的代码 [[AVAudioSession s ...
- 用HTML5 video标签插入视频,在谷歌浏览器上播放视频时,右下角显示的下载按钮怎么去掉
使用H5的video标签可以直接插入视频,一般在浏览器效果如下图显示: 但有时在谷歌浏览器上显示,会遇到右下角有下载按钮.如果项目要求去掉这个下载按钮,怎么办呢?如下图显示: 分析: 经本人测试,是谷 ...
- android 播放视频时切换全屏隐藏状态栏
1. Demo: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstance ...
- Android SurfaceView播放视频时横竖屏的调整
对于横屏录制的视频就横屏播放,对于竖屏录制的视频就竖屏播放. 在mainifest文件里对负责播放的Activity添加以下属性“ android:configChanges="orient ...
- IPTV小窗口播放视频 页面焦点无法移动的解决方法
在IPTV高清页面中,小窗口播放视频时,在某些机顶盒上(如高清中兴.高清大亚4904)会出现焦点无法移动现象,即按键无响应.被这个bug困扰了很久,虽然我知道解决方法,但只知其然,不知其所以然.今天做 ...
- AVAssetReader+AVAssetReaderTrackOutput播放视频
该文章引用自:http://www.jianshu.com/p/3d5ccbde0de1 IOS 微信聊天发送小视频的秘密(AVAssetReader+AVAssetReaderTrackOutput ...
- Windows Phone 7 播放视频
在Windows Phone 7中播放视频有两种方式,一种是使用MediaElement 控件来播放,一种是使用启动器MediaPlayerLanucher来实现视频的播放.用MediaElement ...
随机推荐
- jquery 选择元素
- 在windows上如何安装python web引擎jinja2
首先要把你的Python文件夹加到环境变量里头去.假设你的Python文件夹位于C:\Python34,那么你需要打开CMD并输入: SETX PATH "%path%;C:\Python3 ...
- 代码自定义双色title的按钮
所图所示,通过代码自定义这样的按钮. .h文件 // // CustomButtom.h // testPlus // // Created by 鹰眼 on 14/10/20. // Copyrig ...
- AFNetWorking
目录: 1.为什么要用AFNetworking 2.AFNetworking的用法 一.为什么要用AFNetworking 在ios开发中,一般情况下,简单的向某个web站点简单的页面提交请求并获取服 ...
- Linux系统的理解及学习Linux内核的心得
作业列表 (点击作业跳转) linux内核分析作业:以一简单C程序为例,分析汇编代码理解计算机如何工作 linux内核分析作业:操作系统是如何工作的进行:完成一个简单的时间片轮转多道程序内核 ...
- norm函数的作用,matlab
格式:n=norm(A,p)功能:norm函数可计算几种不同类型的返回A中最大一列和,即max(sum(abs(A))) 2 返回A的最大奇异值,和n=norm(A)用法一样 inf 返回A中最大一行 ...
- ASP.NET MVC 和 Ruby 相结合的Web框架Oak
在http://www.asp.net/mvc/open-source 上有个项目Oak: Frictionless development for ASP.NET MVC single page w ...
- C++的性能C#的产能?! - .Net Native 系列向导
之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...
- Visual Studio Code + live-server编辑和浏览HTML网页
第一步: 安装Visual Studio Code + Node.JS 第二步:通过如下命令行安装live-server npm install -g live-server 第三步:打开Visual ...
- 《Entity Framework 6 Recipes》中文翻译系列 (43) ------ 第八章 POCO之使用POCO加载实体
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 8-2 使用POCO加载关联实体 问题 你想使用POCO预先加载关联实体. 解决方 ...