到目前为止,我一直在使用MPVolumeView
来控制我的iOS设备的音量,该功能在更新到iOS7之前效果很好。
我创建了一个测试项目(Base SDK 6.1, Deployment Target 5.1
),在一个MPVolumeView
上只有一个UIView
。在iPad 1(iOS 5.1)上运行此应用程序时,效果很好,而在iPhone 5(iOS 7)上运行该应用程序却不行。
在我的iPad上,拖动音量滑块可更改整个设备的音量。另外,当我使用硬件按钮时,这确实会反射(reflect)在VolumeView中的滑块上。另一方面,在我的iPhone上,这些控件之间似乎不再有连接。硬件按钮不会导致我的VolumeView发生任何更改,更改音量控制中的滑块也不会导致设备的音量级别。
我需要例如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/