MPVolumeView在iOS 7设备上不再起作用。

9

到目前为止,我一直在使用MPVolumeView来控制我的iOS设备的音量,在更新到iOS 7之前这个方法很好用。

我创建了一个测试项目(Base SDK 6.1, Deployment Target 5.1),它只有一个UIView上的一个MPVolumeView。在我的iPad 1 (iOS 5.1)上运行这个应用程序工作正常,但在我的iPhone 5 (iOS 7)上就不行了。

在我的iPad上,拖动音量滑块会改变整个设备的音量。当我使用硬件按钮时,我的VolumeView中的滑块也会反映出来。然而,在我的iPhone上,似乎这些控件之间不再有连接。硬件按钮不会导致VolumeView发生任何变化,也不会使音量控制器中的滑块反映出设备的音量水平。

我需要例如iPodMusicPlayer播放一些东西,然后它才能工作。否则就不行。

有人知道我怎样才能再次使其工作吗?我真的需要控制整个设备的音频级别(不一定是编程的,用户需要能够在我的应用程序中更改它),而不仅仅是应用程序本身播放声音的级别。

1个回答

0
经过长时间的研究,我已经在这里发布了答案。但我不确定,请尝试使用它,如果您遇到任何问题,请告诉我。
除了MPVolumeView,您还可以使用:
 AVAudioPlayer *testPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"m" ofType:@"caf"]] error:nil];

    [testPlayer prepareToPlay];

在安装MPVolumeView之前。

如果您的应用程序使用Audio session模式AVAudioSessionModeVoiceChat,则无法使用MPVolumeView正常工作,也没有解决方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接