iOS实现基于VLC播放器的封装效果
前言:
在一些特定场景下,我们获取到的音视频,由于格式比较特殊,用avplayer等播放器是无法播放的,此时,我们可以借助强大的VLC播放器来处理。
原理这里不再赘述,下面我们讲一下如何添加VLC播放器代码。
封装功能:
1、视频播放、暂停、重播
2、视频快进、快退(进度条和手势)
3、音量和亮度的调节
效果图:
正文:
1、首先我们需要vlc的Framework,最简单的就是pod获取
platform:ios,'8.0' use_frameworks! pod 'MobileVLCKit'
如果不想通过pod,我这里有我们团队自己打包的库,只有100多M。
下载地址: https://pan.baidu.com/s/1hsgVDrA
添加完项目,我们需要记得add到 Embedded Binaries
注意!!!:
由于github限制大于100M文件上传,Demo里的VLC测试模块的Framework被移除了,运行可能报错。
大家需要先下载下来,添加到项目里,再运行Demo。
2、添加依赖库
大概是以上这些,当然实际使用上,我们遵循多添少补原则~
PS:如果是Swift项目,需要在桥接文件(xxx-bridging-Header)里添加引用
#import <DynamicMobileVLCKit/VLCMediaPlayer.h>
OC项目在使用类文件里正常添加就行了
3、大概的代码结构如下,比较简单清晰
代码使用:
代理事件方法:
4、Demo获取:
点击红框就是了
5、最后补充一点,这个vlc库是包含【x86-64 i386】模拟器架构的,如果上传遇到如下错误:
Unsupported Architecture. Your executable contains unsupported architecture '[x86_64, i386]
就是说明vlc库是没有去除模拟器架构的,如果需要这个库
可以点击这里下载(和上面的库是一样的,只是去除了模拟器架构)
enjoy~
iOS实现基于VLC播放器的封装效果的更多相关文章
- Android VLC播放器二次开发1——程序结构分析
最近因为一个新项目需要一个多媒体播放器,所以需要做个视频.音频.图片方面的播放器.也查阅了不少这方面的资料,如果要从头做一个播放器工作量太大了,而且难度也很大.所以最后选择了VLC作为基础,进行二次开 ...
- Android VLC播放器二次开发3——音乐播放(歌曲列表+歌词同步滚动)
今天讲一下对VLC播放器音频播放功能进行二次开发,讲解如何改造音乐播放相关功能.最近一直在忙着优化视频解码部分代码,因为我的视频播放器需要在一台主频比较低的机器上跑(800M主频),所以视频解码能力受 ...
- vlc 播放器的点播和广播服务
vlc 是一个开源的,同时跨平台的播放器.在研究 rtsp 协议时发现,它同时还是一个强大的流媒体服务器 VLM VLM(VideoLAN Manager) 在 vlc 中是一个小型的媒体管理器,它能 ...
- 使用vlc播放器做rtsp流媒体服务器
可参考: 使用vlc播放器播放rtsp视频 web网页中使用vlc插件播放相机rtsp流视频 使用vlc进行二次开发做自己的播放器 首先需要安装vlc播放器,下载及安装步骤略 使用vlc播放器做rts ...
- 使用vlc播放器播放rtsp流视频
可参考: 使用vlc播放器做rtsp服务器 web网页中使用vlc插件播放相机rtsp流视频 使用vlc进行二次开发做自己的播放器 首先需要安装vlc播放器,下载及安装步骤略 使用vlc播放器播放rt ...
- centos7安装VLC播放器
centos7安装VLC播放器 1.安装eple 下载地址:https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noar ...
- Centos 上使用mmsh协议听猫扑网络电台 VLC播放器
Centos 上使用mmsh协议听猫扑网络电台 VLC播放器 安装CentOS已经有一段时间了,但是由于在Linux下除了学习,其他是事情都干不了.今天想闲来无事开了CentOS就想听一下歌,突然想起 ...
- Ubuntu安装VLC播放器
Ubuntu安装VLC官方介绍:http://www.videolan.org/vlc/download-ubuntu.html sudo apt-get update sudo apt-get in ...
- Android VLC播放器二次开发2——CPU类型检查+界面初始化
上一篇讲了VLC整个程序的模块划分和界面主要使用的技术,今天分析一下VLC程序初始化过程,主要是初始化界面.加载解码库的操作.今天主要分析一下org.videolan.vlc.gui.MainActi ...
随机推荐
- $.getJSON的缓存问题处理
今天遇到jQuery.getJSON的缓存问题.如果其调用的url之前曾经调用过的话,回调函数就会直接在缓存里面取得想要得值,而不是进入到后台,调用存储过程了.这是一个比较郁闷的问题.不修改的话,用户 ...
- HDU—— 5159 Building Blocks
Problem Description After enjoying the movie,LeLe went home alone. LeLe decided to build blocks. LeL ...
- JQuery-Dialog(弹出窗口,遮蔽窗口)
在Ajax中经常用到的弹出窗口和遮蔽窗口.自己写肯定是一个最佳方案,但时间和成本上,还是决定了寻找现成的吧.大概罗列一下.需要我满足我几个条件 一定要简洁方便 拥有遮蔽功能,Model Dialog ...
- JavaScript类的写法
js类的基本含义 我们知道,在js中,是没有类的概念的.类的所有实例对象都从同一个原型对象上继承属性,因此,原型对象是类的核心. 类是对象的抽象,而对象是类的具体实例.类是抽象的,不占用内存,而对象是 ...
- springboot下配置多数据源
摘自: http://blog.csdn.net/wangqingqi20005/article/details/52613055
- AI 也开源:50 大开源 AI 项目 (转)
这些开源AI项目专注于机器学习.深度学习.神经网络及其他应用场合. 自IT界早期以来,研制出能像人类那样“思考”的机器一直是研究人员的一大目标.在过去几年,计算机科学家们在人工智能(AI)领域已取得了 ...
- Mongo = get size of single document
Object.bsonsize(db.test.findOne({type:"auto"}))
- Java 大型系统高并发大数据的处理方式
页面静态化 (页面层面的缓存) 缓存 (memcached.redis等,数据缓存.避免多次请求) 集群负载均衡(单机处理能力不足) 分库分表(大量数据的处理.原则分.分.分) 读写分离 队列.MQ. ...
- [Angular] Communicate with Angular Elements using Inputs and Events
In a real world scenario we obviously need to be able to communicate with an Angular Element embedde ...
- [Canvas]Running Horse
下载地址:https://files.cnblogs.com/files/xiandedanteng/52-RunningHorse.rar,下载完毕后请使用Chrome浏览器打开Index.html ...