IOS 手势音量控制
2015-04-24 13:51
363 查看
两种简单的实现系统音量的控制:
第一种
//获取系统音量
MPVolumeView *volumeView = [[MPVolumeView alloc] init];
volumeViewSlider = nil;
for (UIView *view in [volumeView subviews]){
if ([view.class.description isEqualToString:@"MPVolumeSlider"]){
volumeViewSlider = (UISlider *)view;
break;
}
}
systemVolume = volumeViewSlider.value;
第二种
//获取系统音量
MPMusicPlayerController *mpc = [MPMusicPlayerController applicationMusicPlayer];
systemVolume = mpc.volume;
代码如下:
@implementation JYMoviePlayerViewController
UISlider* volumeViewSlider;
float systemVolume;//系统音量值
CGPoint startPoint;//起始位置
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
//获取系统音量
MPVolumeView *volumeView = [[MPVolumeView alloc] init];
volumeViewSlider = nil;
for (UIView *view in [volumeView subviews]){
if ([view.class.description isEqualToString:@"MPVolumeSlider"]){
volumeViewSlider = (UISlider *)view;
break;
}
}
systemVolume = volumeViewSlider.value;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
if(event.allTouches.count == 1){
//保存当前触摸的位置
CGPoint point = [[touches anyObject] locationInView:self.view];
startPoint = point;
}
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
if(event.allTouches.count == 1){
//计算位移
CGPoint point = [[touches anyObject] locationInView:self.view];
// float dx = point.x - startPoint.x;
float dy = point.y - startPoint.y;
int index = (int)dy;
if(index>0){
if(index%5==0){//每10个像素声音减一格
NSLog(@"%.2f",systemVolume);
if(systemVolume>0.1){
systemVolume = systemVolume-0.05;
[volumeViewSlider setValue:systemVolume animated:YES];
[volumeViewSlider sendActionsForControlEvents:UIControlEventTouchUpInside];
//mpc.volume = systemVolume;
}
}
}else{
if(index%5==0){//每10个像素声音增加一格
NSLog(@"+x ==%d",index);
NSLog(@"%.2f",systemVolume);
if(systemVolume>=0 && systemVolume<1){
systemVolume = systemVolume+0.05;
[volumeViewSlider setValue:systemVolume animated:YES];
[volumeViewSlider sendActionsForControlEvents:UIControlEventTouchUpInside];
//mpc.volume = systemVolume;
}
}
}
//亮度调节
// [UIScreen mainScreen].brightness = (float) dx/self.view.bounds.size.width;
}
}
第一种
//获取系统音量
MPVolumeView *volumeView = [[MPVolumeView alloc] init];
volumeViewSlider = nil;
for (UIView *view in [volumeView subviews]){
if ([view.class.description isEqualToString:@"MPVolumeSlider"]){
volumeViewSlider = (UISlider *)view;
break;
}
}
systemVolume = volumeViewSlider.value;
第二种
//获取系统音量
MPMusicPlayerController *mpc = [MPMusicPlayerController applicationMusicPlayer];
systemVolume = mpc.volume;
代码如下:
@implementation JYMoviePlayerViewController
UISlider* volumeViewSlider;
float systemVolume;//系统音量值
CGPoint startPoint;//起始位置
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
//获取系统音量
MPVolumeView *volumeView = [[MPVolumeView alloc] init];
volumeViewSlider = nil;
for (UIView *view in [volumeView subviews]){
if ([view.class.description isEqualToString:@"MPVolumeSlider"]){
volumeViewSlider = (UISlider *)view;
break;
}
}
systemVolume = volumeViewSlider.value;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
if(event.allTouches.count == 1){
//保存当前触摸的位置
CGPoint point = [[touches anyObject] locationInView:self.view];
startPoint = point;
}
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
if(event.allTouches.count == 1){
//计算位移
CGPoint point = [[touches anyObject] locationInView:self.view];
// float dx = point.x - startPoint.x;
float dy = point.y - startPoint.y;
int index = (int)dy;
if(index>0){
if(index%5==0){//每10个像素声音减一格
NSLog(@"%.2f",systemVolume);
if(systemVolume>0.1){
systemVolume = systemVolume-0.05;
[volumeViewSlider setValue:systemVolume animated:YES];
[volumeViewSlider sendActionsForControlEvents:UIControlEventTouchUpInside];
//mpc.volume = systemVolume;
}
}
}else{
if(index%5==0){//每10个像素声音增加一格
NSLog(@"+x ==%d",index);
NSLog(@"%.2f",systemVolume);
if(systemVolume>=0 && systemVolume<1){
systemVolume = systemVolume+0.05;
[volumeViewSlider setValue:systemVolume animated:YES];
[volumeViewSlider sendActionsForControlEvents:UIControlEventTouchUpInside];
//mpc.volume = systemVolume;
}
}
}
//亮度调节
// [UIScreen mainScreen].brightness = (float) dx/self.view.bounds.size.width;
}
}
相关文章推荐
- iOS流媒体开发之二:滑动手势控制音量、亮度和进度
- [绍棠] iOS流媒体开发:滑动手势控制音量、亮度和进度
- iOS流媒体开发之二:滑动手势控制音量、亮度和进度
- IOS触摸屏手势控制镜头旋转与缩放
- Unity3D研究院之IOS触摸屏手势控制镜头旋转与缩放(八)
- iOS--手势控制的使用:单击、双击、长按、滑动、托移、捏合、晃动。。
- Android视频播放器--手势控制亮度、音量、缩放
- iOS 系统音量控制
- 【转载】Unity3D研究院之IOS触摸屏手势控制镜头旋转与缩放
- 自定义MPMoviePlayerController(手势控制提高音量和进度)
- iOS:点击按钮或者手势控制界面左右滑动
- iOS开发 - 滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和Masonry简单使用)
- IOS 控制音量并实现后台播放音乐
- iOS的手势控制
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
- 错误总结之播放器(vitamio)音量实体键与触摸手势控制,音量调节冲突
- Unity3D 游戏引擎之IOS触摸屏手势控制镜头旋转与缩放(八)