关于基本视频播放的Demo
最近在做一个视频的Demo,当然是仿的别人的,现贴出原文地址:http://code4app.com/forum.php?mod=viewthread&tid=8959&highlight=%E8%A7%86%E9%A2%91
,欢迎大家支持原作者。当然我的只是仿照的,不过平常没有用到过的方法我都写出了注释,不懂得可以探讨。
https://github.com/losedMemory/ZSAVPlayerVideo 这是我在github上传的源码,欢迎大家下载,如有问题请指正。
现在列出一些写这个Demo出现的问题。
1. 控制器继承自MPMoviePlayerController,但是这个类是找不到的,要引入头文件@importMediaPlayer;
2. 当前播放控制器MPMoviePlayerController 的属性currentPlaybackTime(当前播放装置播放视频的时间)和duration(视频持续的时间)计量单位是秒,一般的话都是转化成分钟:秒,或者小时:分钟:秒
3.关于运算符的问题:
volumeView.center = CGPointMake(0, 0);
[self.view addSubview:volumeView];
self.volumSlider = nil;
for (UIView *view in volumeView.subviews) {
//在MPVolumeViews中找一个slider的类
if ([view.class.description isEqualToString:@"MPVolumeSlider"]) {
self.volumSlider = (UISlider *)view;
break;
}
Terminating app due to uncaught exception 'NSRangeException', reason: 'Cannot remove an observer <ZSPlayerVideoBrightnessView 0x7fe6b586b010> for the key path "brightness" from <UIScreen 0x7fe6b3407f20> because it is not registered as an observer.'
8.关于使用网上是这么解释的:不定期地会发生某些事件,对事件的发生需要作出响应,但是不希望对每个相同的事件作出响应,大意就是对于滑动手势调节音量/亮度/进度只需要到最后让指示器隐藏即可。
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(animationHide) object:nil];
//主线程中调用,异步执行
[self performSelector:@selector(animationHide) withObject:nil afterDelay:kBrightnessAutoFadeInterval];
关于基本视频播放的Demo的更多相关文章
- ios 视频播放代码Demo
方法一: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. / ...
- UIBPlayer (视频播放)demo分享
本文出自APICloud官方论坛 UIBPlayer 封装了百度云播放器 SDK.本模块带有UI方案,打开后为一个具有完整功能的播放器界面.百度云播放器突破 Android.iOS 平台对视频格式的限 ...
- 用法简单的图片和视频播放的框架Demo
最近在恶补自己不足的基础知识,偶然在一个QQ群里看到作为同行业的大神们在开源自己的代码.并且在炫耀说让我们找Bug,于是出于好奇就看了下,点开了一个关于图片和视频播放的Demo.也就是接下来我要说的这 ...
- Android使用VideoView播放本地视频及网络视频Demo
1.xm文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:and ...
- win7 x64 vs2010 directShow开发环境配置
近来工作需要,要用dirrectShow写一个视频播放的demo验证自己的想法.开发环境配置了好久都没有成功,最后终于弄完,现在记录下来,以后有同学遇到同样问题,可以以此法解决. windows SD ...
- 非常有用的GitHub链接
平常开发工作中,我经常取Github上搜索项目,Clone下来学习使用,在这个过程中,发现了好多比较好的Github地址,记录下来,分享出去. image 非常有用的GitHub链接(顺序不分先后): ...
- github视频录制播放相关功能-参考
lookingstars/JZVideoDemo 视频播放器 Updated on 11 Aug Objective-C 15 10 caoguoqing/VideoEditDemo iOS vi ...
- 网页背景H5视频自动播放---PC端、移动端兼容问题完美解决方案(IOS、安卓、微信端)
最近公司官网需要使用视频当做banner背景且自动播放,并且因为是官网需要做到PC端和移动端都可以适配兼容,这些问题很是头疼: 兵来将挡,水来土掩,进过查阅相关技术资料,现已完美兼容PC端和移动端.下 ...
- 分享整理vue.js在日常工作中用到的组件,帮助你在vue应用中快速开发
Vue-Echarts vue-echarts是封装后的vue插件, 基于 ECharts v4.0.1+ 开发,依赖 Vue.js v2.2.6+,功能一样的只是把它封装成vue插件 这样更方便以v ...
随机推荐
- Android:SQLite无法update/insert/delete数据(数据库被locked)
//在频繁范围数据库进行读写操作后,会发生增删改数据都无效的问题,查询一般正常. mDatabase.beginTransaction(); try { Log.v(TAG,"locked: ...
- iOS开发:后台运行以及保持程序在后台长时间运行
第一部分 1.先说说iOS 应用程序5个状态: 停止运行-应用程序已经终止,或者还未启动. 不活动-应用程序处于前台但不再接收事件(例如,用户在app处于活动时锁住了设备). 活动-app处于“使用中 ...
- Call an activity method from a fragment
From fragment to activty: ((YourActivityClassName)getActivity()).yourPublicMethod(); From activity t ...
- JavaScript(四)---- 函数
函数主要用来封装具体的功能代码. 函数是由这样的方式进行声明的:关键字 function.函数名.一组参数,以及置于括号中的待执行代码. 格式: function 函数名(形参列表){ ...
- Git 分支-利用分支进行开发的工作流程
3.4 Git 分支 - 利用分支进行开发的工作流程 利用分支进行开发的工作流程 现在我们已经学会了新建分支和合并分支,可以(或应该)用它来做点什么呢?在本节,我们会介绍一些利用分支进行开发的工作流程 ...
- Ubuntu安装完后设置root密码
安装完Ubuntu 14.04后默认是没有主动设置root密码的,也就无法进入根用户. 相关阅读: Ubuntu 14.04 下载.安装.配置 整理汇总 页面 http://www.linuxidc. ...
- C# 中的内存管理,摘自网络
C#编程的一个优点是程序员不需要关心具体的内存管理,尤其是垃圾收集器会处理所有的内存清理工作.虽然不必手工管理内存,但如果要编写高质量的代码,还是要理解后台发生的事情,理解C#的内存管理.本文主要介绍 ...
- SPOJ Count on a tree
Count on a tree Time Limit:129MS Memory Limit:1572864KB 64bit IO Format:%lld & %llu Subm ...
- article标签
<html><head lang="en"> <meta charset="UTF-8"> <title>富士康 ...
- Android 自定义 SpinnerButton(转)
Android 自定义 SpinnerButton 模仿Android4.0的Spinner Button写的一个MySpinnerButton.这样在1.6~4.0.4版本都可以实现这种下拉框的效果 ...