ios视频播放器,代码和界面分离
最近业余时间整理的一个ios播放器,界面采用storyboard,以前几乎都是用代码布局,但是用过一个项目storyboard后,就感觉storyboard很靠谱,团队合作版本控制的问题解决其实很简单,每个人一个storyboard就可以了。播放代码使用的是avplayer,最大的优化就是播放界面和播放代码完全分离。
-(void)createPlayer
{ self.playBackView=[[AVPlayerDemoPlaybackView alloc] initWithFrame:viewBounds];
[self.view addSubview:self.playBackView]; self.playerManager=[[AVPlayerManager alloc] init];
//设置url
//self.playerManager.URL=[[NSBundle mainBundle] URLForResource:@"1" withExtension:@"mp4"];
//self.playerManager.URL=[[NSBundle mainBundle] URLForResource:@"2" withExtension:@"mov"];
self.playerManager.URL=[NSURL URLWithString:@"http://static.tripbe.com/videofiles/20121214/9533522808.f4v.mp4"];
//设置播放界面
self.playerManager.mPlaybackView=self.playBackView;
//设置时间轴
self.playerManager.scrubSlider=self.scrubSlider;
//播放出错回调
self.playerManager.failedBlock=^(NSError *error){
if (error) {
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:[error description] message:[error debugDescription] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}
};
__weak ViewController *weakself=self;
//播放状态改变
self.playerManager.statusChangeBlock=^(BOOL isPlaying){
weakself.playBtn.hidden=isPlaying;
weakself.pauseBtn.hidden=!isPlaying;
};
//播放结束
self.playerManager.playEndBlock=^(){
NSLog(@"播放结束");
};
//准备好播放
self.playerManager.readyToPlayBlock=^(){
weakself.totalTimeLabel.text=[weakself convertTimetoString:weakself.playerManager.duration];
weakself.playBtn.enabled=YES;
weakself.pauseBtn.enabled=YES;
[weakself.playerManager play]; };
//播放过程时间改变
self.playerManager.timeChangedBlock=^(double time)
{
weakself.currentTimeLabel.text=[weakself convertTimetoString:time];
};
//声音发生改变
self.playerManager.volumeChangedBlock=^(){
weakself.volumeSlider.value=weakself.playerManager.volume;
};
//缓冲时间
self.playerManager.bufferChangedBlock=^(double buffered){
weakself.processBar.progress=buffered/weakself.playerManager.duration;
weakself.speedLabel.text=[NSString stringWithFormat:@"%0.0fkb/s",weakself.playerManager.bufferSpeed];
}; //初始化完毕,准备播放
[self.playerManager prepare]; }


代码下载:http://pan.baidu.com/s/1eyVMm
ios视频播放器,代码和界面分离的更多相关文章
- 网页中插入Flvplayer视频播放器代码
http://blog.csdn.net/china_skag/article/details/7424019 原地址:http://yuweiqiang.blog.163.com/blog/stat ...
- [ZT]嵌入视频播放器代码
http://www.cnblogs.com/liulanglang/archive/2007/11/29/976638.html 页面插入REAL播放器代码: < id=video1 styl ...
- Android短信管家视频播放器代码备份
自己保留备份,增强记忆 这是video的类 public class VideoActivity extends Activity { /** * 解析网络页面 */ private WebVie ...
- IOS视频播放器的制作
利用自带MPMoviePlayerController来实现视频播放,首先要在项目中导入MediaPlayer.Framework框架包. 在视图控制器中 #import "MediaPla ...
- [刘阳Java]_酷炫视频播放器制作_界面篇
今天开始分享一篇酷炫播放器制作,包括界面+JS.整个案例非常类似腾讯视频,优酷视频,爱奇艺视频.我们先看一下效果图,然后这篇文章主要界面篇 是不是效果比较酷炫,那么我接着来给大家说一下这个界面设计思路 ...
- iOS视频播放器
用AVPlayer写的一个简单的播放器,支持横竖屏旋转! https://github.com/shumingli/module 欢迎加iOS开发交流群:516318591
- flv视频播放器代码
<div class="txt1"> <script type="text/javascript"> var swf_width=307 ...
- iOS AVPlayer视频播放器
代码地址如下:http://www.demodashi.com/demo/11168.html 一.运行效果 二.实现过程 ①.创建播放器avPlayer //创建播放器 url = [url str ...
- [刘阳Java]_酷炫视频播放器制作_JS篇
此文章是接着上次写的<酷炫视频播放器制作_界面篇>将其完善,我们主要给大家介绍一下如何利用JS脚本来控制视频的播放.为了让大家能够保持对要完成的功能有直接的了解,我们还是将效果图附到文章里 ...
随机推荐
- Dark Mobile Bank之移动银行应用仿冒攻击威胁分析报告
一.背景 据“第十五次全国信息网络安全状况暨计算机和移动终端病毒疫情调查”调查结果显示,2015年移动终端的病毒感染比例为50.46%,相对于2014年增长了18.96%,移动终端病毒感染率涨幅较大, ...
- Python-函数的返回值
特点: - 函数被调用后会返回一个指定的值 - 函数调用后默认返回none - return用于函数内部返回值 - 返回值可以是任意类型 - return执行后,函数终止 注意: 所有函数默认都有 ...
- 特征描述算子-sift
特征描述算子-sift http://boche.github.io/download/sift/Introduction%20to%20SIFT.pdf
- G1 垃圾收集器
概念先知 什么是垃圾回收 简单的说垃圾回收就是回收内存中不再使用的对象. 垃圾回收的基本步骤: 查找内存中不再使用的对象 释放这些对象占用的内存 查找内存中不再使用的对象 如何判断哪些对象不再被使用呢 ...
- 一个神奇的POS -扫描 现场销售 开单打印票据 安卓物联网POS机 手持开单终端机 省时省力 高效准确!!
5寸高清彩屏,高端大气上档次,小巧轻便,独特的包胶防护,坚固耐用,外形精细,美观!与软件灵活对接,解决企业手工盘点,手工输单,库存管理等困难,提高准确率,提高工作效率!! 应用领域:适用于仓库.超市. ...
- PHP 显示文章发布日期 一小时前 一天前 一月前 一年前
<?PHP /*** 传入日期格式或时间戳格式时间,返回与当前时间的差距,如1分钟前,2小时前,5月前,3年前等* @param string or int $date 分两种日期格式" ...
- Asp.net中static变量和viewstate的使用方法(谨慎)
在.Net平台下进行CS软件开发时,我们经常遇到以后还要用到某些变量上次修改后的值,为了简单起见,很多人都习惯用static来定义这些变量,我也是.这样非常方便,下一次调用某个函数时该变量仍然保存的是 ...
- git 开发merge rebase 记录
git status git lg git add src/ git commit -m "restful api and portal" //先commit到自己的本地branc ...
- Android 权限列表
访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,允许读写check-in数据库属性表的权限 ( Allows read/write acces ...
- Exchange环境搭建心得
不知道是思维模式的问题,还是智商不够用,从3月1日开始准备自学Exchange,到今天还是有好多东西稀里糊涂的.不说别的,就搭建环境,前期的报错折腾了好一阵.现在回顾一下,用Server08R2,一台 ...