我想将音量控制的滑块动作与音量按钮联系起来,因此如果使用按钮,滑块也会调整。我认为这是可能的,但我不确定。
目前我有一个工作滑块音量控制,但它没有绑定物理按钮。
答案 0 :(得分:2)
我没有测试过这些,只是进行了一些研究并复制和粘贴。
1a上。从设备中获取音量。
float volume = [[AVAudioSession sharedInstance] outputVolume];
self.volume = vol;
或
#import <MediaPlayer/MediaPlayer.h>
//...
float vol = [MPMusicPlayerController iPodMusicPlayer].volume;
self.volume = vol;
1b中。在音量变化时收到通知
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(volumeChanged:)
name:@"AVSystemController_SystemVolumeDidChangeNotification"
object:nil];
-(void)volumeChanged:(NSNotification*)notification{
float vol = [[[notification userInfo]
objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"]
floatValue];
self.volume = vol;
}
// Some said the Notification used is a private apple API so you should do a bit of research for using it in a app you are submitting to apple.
// There is also this notification though: MPMusicPlayerControllerVolumeDidChangeNotification
将滑块设置为音量。
self.volumeSlider.value = (double) self.volume;
或者 使用Apple的MPVolumeView
使用音量视图向用户显示用于设置系统音频输出音量的滑块控件,以及用于选择音频输出路径的按钮。首次显示时,滑块的位置反映当前系统音频输出音量。当用户拖动滑块时,更改会更新卷。如果用户在播放声音时按下设备音量按钮,滑块将移动以反映新音量。 - Apple Docs
mpVolumeViewParentView.backgroundColor = [UIColor clearColor];
MPVolumeView *myVolumeView = [[MPVolumeView alloc] initWithFrame: mpVolumeViewParentView.bounds];
[mpVolumeViewParentView addSubview: myVolumeView];
修改强> 从阅读MPMediaPlayer文档来看,似乎Apple希望每个人都使用自己的音量滑块并根据需要自定义它的外观。