多媒体音量控制

原创
2015/05/26 13:56
阅读数 317

方案一:

MPMusicPlayerController

// This property is deprecated -- use MPVolumeView for volume control instead.

该方法在7.0后已经标记为废除


获取音量

[MPMusicPlayerController applicationMusicPlayer].volume


设置音量

[[MPMusicPlayerController applicationMusicPlayer] setVolume:newVolume];


使用该方法改变音量时,会出现系统的音量调节的View, 如果要隐藏,需要实例化一个MPVolumeView,然后将其的加入当前的view中,并将其的位置设置在不可见的地方(可以是超出屏幕的位置,注意使用hidden是无效的)。


方案二:

MPVolumeView (需要导入<MediaPlayer/MPVolumeView.h>)

注意:需要使用真机,模拟器无法看到


MPVolumeView m_volumeView = [[MPVolumeView alloc]initWithFrame:CGRectMake(10, 10, 200, 30)];

[self.view addSubview:m_volumeView];


调节滑动条会自动修改系统音量。


监听系统音量变化

使用通知:AVSystemController_SystemVolumeDidChangeNotification 对系统的音量进行监听。


注册通知

[[NSNotificationCenter defaultCenter] addObserver:self 

                                         selector:@selector(volumeChanged:)

                                    name:@"AVSystemController_SystemVolumeDidChangeNotification"

                                           object:nil];


通知回调处理

-(void) volumeChanged:(NSNotification *)notification

{

    float volume = [[[notification userInfo] objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"] floatValue];

    if(volume == m_currentVolume)

    {

        return;

    }

    m_currentVolume = volume;

    

    // TODO

}


删除通知

[[NSNotificationCenter defaultCenter] removeObserver:self name:@"AVSystemController_SystemVolumeDidChangeNotification" object:nil];





展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部