iOS播放器常用功能
iOS播放器常用功能
强制横屏
在播放器中常见强制横屏,例如,如下这种:
OC实现代码如下:
if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) {SEL selector = NSSelectorFromString(@"setOrientation:");NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];[invocation setSelector:selector];[invocation setTarget:[UIDevice currentDevice]];int val = orientation;// 从2开始是因为0 1 两个参数已经被selector和target占用[invocation setArgument:&val atIndex:2];[invocation invoke];}
拖动调节音量
在播放器器中,通常是拖动来调节音量。需要使用到MPVolumeView
MPVolumeView
是Media Player Framework中的一个UI组件,直接包含了对系统音量和Airplay设备的音频镜像路由的控制功能。其中包含一个MPVolumeSlider
的subview
用来控制音量。这个MPVolumeSlider
是一个私有类,我们无法手动创建此类,但这个类是UISlider的子类。
遍历MPVolumeSlider
的subview
获取到这个slider
MPVolumeView *volumeView = [[MPVolumeView alloc] init];
for (UIView *view in [volumeView subviews]){if ([view.class.description isEqualToString:@"MPVolumeSlider"]){_volumeSlider = (UISlider*)view;break;}
}
添加对应的拖动手势
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panDirection:)];
pan.delegate = self;
[self.view addGestureRecognizer:pan];
对应的拖动事件为,这里仅仅是一个简单的例子,上下拖动时改变slider的value
:
/*** pan手势事件** @param pan 拖动手势*/- (void)panDirection:(UIPanGestureRecognizer *)pan{CGPoint veloctyPoint = [pan velocityInView:self.view];switch (pan.state) {case UIGestureRecognizerStateBegan:{ // 开始移动// 使用绝对值来判断移动的方向CGFloat x = fabs(veloctyPoint.x);CGFloat y = fabs(veloctyPoint.y);if (x > y) {// 水平移动_verticalPan = NO;}else if (x < y){// 垂直移动_verticalPan = YES;}break;}case UIGestureRecognizerStateChanged:{ // 正在移动if (_verticalPan) {self.volumeSlider.value -= veloctyPoint.y / 10000;}}case UIGestureRecognizerStateEnded:{ // 移动停止}default:break;}}
结果要在真机上测试才行,结果如下:
调节亮度
通洞调节亮度跟上面差不多,如下:
[UIScreen mainScreen].brightness -= veloctyPoint.x / 10000;
只是没有提示,所以自己要自定义一个提示框BrightnessView。在中BrightnessView使用KVO观察[UIScreen mainScreen]
的brightness的变化
[[UIScreen mainScreen] addObserver:selfforKeyPath:@"brightness"options:NSKeyValueObservingOptionNew context:NULL];
在亮度变化后作出相应的调整:
- (void)observeValueForKeyPath:(NSString *)keyPathofObject:(id)objectchange:(NSDictionary *)changecontext:(void *)context {CGFloat sound = [change[@"new"] floatValue];//处理对应的逻辑}
iOS播放器常用功能相关推荐
- Android开源音乐播放器之播放器基本功能
系列文章 Android开源在线音乐播放器--波尼音乐 Android开源音乐播放器之播放器基本功能 Android开源音乐播放器之高仿云音乐黑胶唱片 Android开源音乐播放器之自动滚动歌词 An ...
- 网页中Flash播放器常用参数设置(转)
网页中Flash播放器常用参数设置 2006-11-26 23:24 我们现在大部分人做网页,都是直接用DW插入flash,而且DW也是所见即所得,直接生成了相应的flash显示代码.可是我们又有多少 ...
- 播放器常用手势操控封装GestureView
一.播放器常用手势操控包括: 1.单击显示和隐藏播放器控件: 2.双击播放暂停: 3.左侧上下滑动调节亮度: 4.右侧上下滑动调节音量: 5.左右滑动调节进度. 二.手势检测帮助类PlayerGest ...
- iOS播放器 - AVPlayer
之前有说到在播放器中一点点小技巧,现在正式记录一下AVPlayer. 这里主要是说明用AVPlayer做音乐播放器的功能实现,所以不介绍AVPlayer中那个图层类. 首先我们要声明一下播放器,这里有 ...
- jsp网页嵌入PHP网页,JSP_(jsp/html)网页上嵌入播放器(常用播放器代码整理),这个其实很简单,只要在HTML上 - phpStudy...
(jsp/html)网页上嵌入播放器(常用播放器代码整理) 这个其实很简单,只要在HTML上添加以上代码就OK了,前提是你的电脑上已经安装了播放器,如RealPlay. 还有更多的的播放器和设置可供选 ...
- 弹幕播放器php代码,苹果CMSV10弹幕播放器 记忆功能+m3u8+MP4.zip
[实例简介]支持自动下一集 带记忆播放 弹幕等简单的功能 播放器只支持m3u8和MP4视频链接播放有效,其他格式的没有添加组件,会玩的可以自己二次修改开发 [实例截图] [核心代码] MacPlaye ...
- plotplay恢复默认设置_PotPlayer播放器常用设置
PotPlayer 播放器常用设置 目录 一 前言 .......................................................................... ...
- 阿里云移动端播放器高级功能---直播时移
基本介绍 通常都知道直播是无法seek拖动的,那么针对在直播中想回看之前直播过的内容的用户来说,直播时移就能派上用场.我们阿里云播放器支持了直播时移功能,用户能较为方面和快速的使用直播时移的功能. 先 ...
- 阿里云移动端播放器高级功能---截图和音频波形
基本介绍 如果用户对视频播放中的某一帧画面特别感兴趣,可以使用截图功能将这一帧视频保存起来.另外有一种场景想知道是否有声音,或者想感知声音的大小震动频率等,可以通过显示一个声音的波形来形象的表示.如下 ...
- 阿里云移动端播放器高级功能---截图和音频波形 1
基本介绍 如果用户对视频播放中的某一帧画面特别感兴趣,可以使用截图功能将这一帧视频保存起来.另外有一种场景想知道是否有声音,或者想感知声音的大小震动频率等,可以通过显示一个声音的波形来形象的表示.如下 ...
最新文章
- C++ 笔记(16)— 类和对象(类定义、类实例对象定义、访问类成员、类成员函数、类 public/private/protected 成员、类对象引用和指针)
- 基于 Spring Boot 和 Spring Cloud 实现微服务架构
- IOS 4.0 以上版本 home键退出 后台执行代码
- POJ3197(连分数表示)
- extjs 表格数据重新加载_一个简单的更改让PyTorch读取表格数据的速度提高20倍:可大大加快深度学习训练的速度...
- jquery $(this)和this
- java登陆挤下去代码_application作用域实现用户登录挤掉之前登录用户代码
- 用开源技术巧解代账公司开票据难题
- Excel—身份证生日提取
- F30.2018年版本北大中文核心期刊目录
- 基于ATMEGA128的密码锁
- 74LS138的结构
- 上涨趋势回踩均线选股器
- AI——六(图层、蒙版)
- HDU -2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(DP,贪心)
- 数据仓库建设---数据建模
- 谈谈大数据时代企业如何进行数据治理体系建设
- 不小心删除了360浏览器里收藏夹的内容,怎么恢复
- 数据挖掘建模的标准流程是什么,主要分为哪几步?
- java根据开始日期和结束日期计算天数