iOS调整音量+音量变化通知

iOS调整音量+音量变化通知


虽然iOS设备有调节音量的按钮,但是有时需要在应用内调整音量,这时需要MPMusicPlayerController来完成音量的调节。此外有时需要监听音量按钮调节的音量值变化,比如反映到某一个进度条上就需要监听音量变化通知。本文实现这两个需求。

调整音量

-(IBAction)volumeScrub:(id)sender{

UISlider *slider=sender;

MPMusicPlayerController *mpc = [MPMusicPlayerController applicationMusicPlayer];

mpc.volume = slider.value;  //0.0~1.0

NSLog(@”volume value %f”,mpc.volume);

}

这里利用UISlider的滑动来传递变化值(0~1),然后利用MPMusicPlayerController的volume属性来调整音量。

 

音量变化监听

        //监听音量的变化

[[NSNotificationCenter defaultCenter] addObserver:self

selector:@selector(volumeChanged:)

name:@”AVSystemController_SystemVolumeDidChangeNotification”

object:nil];

 

- (void)volumeChanged:(NSNotification *)notification

{

float volume =

[[[notification userInfo]

objectForKey:@”AVSystemController_AudioVolumeNotificationParameter”]

floatValue];

volumeSlider.value=volume;

}

转载:http://www.xiaoyaoli.com/?p=932




在iOS设备中音量分为耳机音量和手机音量,二者相互独立:但是不管耳机还是 手机都是调用一种方法改变音量, 在设备上有耳机的时候改变耳机音量,没有耳机的时候改变手机音量。

在github中有一个开源项目:SystemVolumeNativeExtension . (点击获取链接)


在解压后找到 SystemVolumeNativeExtension/IOSVolumeLib/IOSVolumeLib/IOSVolumeLib.m 这个文件.

不用看太多,只需要关注:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
float getVolumeLevel()
{
     MPVolumeView *slide = [MPVolumeView new ];
     UISlider *volumeViewSlider;
     
     for (UIView *view in [slide subviews])
     {
         if ([[[view class ] description] isEqualToString:@ "MPVolumeSlider" ])
         {
             volumeViewSlider = (UISlider *) view;
         }
     }
     
     float val = [volumeViewSlider value];
     [slide release];
     
     return val;
}

&

?
1
2
3
4
5
6
7
8
9
FREObject setVolume(FREContext ctx, void * funcData, uint32_t argc, FREObject argv[])
{
     double newVolume;
     FREGetObjectAsDouble(argv[ 0 ], &newVolume);
     
     [[MPMusicPlayerController applicationMusicPlayer] setVolume: newVolume];
     
     return NULL;
}

如个你觉得这也有些繁琐: 那你直接使用:

?
1
[[MPMusicPlayerController applicationMusicPlayer] setVolume: newVolume];
newVolume的范围是 0 ~ 1;

简单说就是用这个即可设置耳机音量。


转载:http://www.2cto.com/kf/201401/272351.html


你可能感兴趣的:(iOS调整音量+音量变化通知)