到目前为止,我一直在使用 MPVolumeView
控制我的 iOS 设备的音量,在更新到 iOS7 之前效果很好。
我创建了一个测试项目( Base SDK 6.1, Deployment Target 5.1
),它只有一个 MPVolumeView
在单个 UIView
.虽然在我的 iPad 1 (iOS 5.1) 上运行这个应用程序工作得很好,但在我的 iPhone 5 (iOS 7) 上运行它却不行。
在我的 iPad 上拖动音量 slider 会改变整个设备的音量。此外,当我使用硬件按钮时,这确实会反射(reflect)在 VolumeView 中的 slider 上。另一方面,在我的 iPhone 上,这些控件之间似乎不再有联系。硬件按钮不会导致我的 VolumeView 发生任何变化,更改音量控制中的 slider 也不会导致设备音量级别。
我需要有例如iPodMusicPlayer
播放一些东西,然后它就起作用了。否则不会。
有谁可以让这个再次工作?我真的需要控制整个设备的音频级别(不一定以编程方式,用户需要能够在我的应用程序中更改它),而不仅仅是应用程序本身播放的声音级别。
最佳答案
经过长时间的研究,我已经将答案发送到这里。但是我不确定如果您遇到任何问题请告诉我
而不是 MPVolumeView
,您还可以使用:
AVAudioPlayer *testPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"m" ofType:@"caf"]] error:nil];
[testPlayer prepareToPlay];
在安装
MPVolumeView
之前.如果您的应用使用
Audio session
模式 AVAudioSessionModeVoiceChat
不允许 MPVolumeView
在没有解决方法的情况下也能正常工作。
关于ios7 - MPVolumeView 不再适用于 iOS 7 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19028957/