我使用同样的技术,但我注意到以下行为:
在iPod触摸G2: 的MPVolumeView滑块工程,充分响应来自应用程序的启动时间摇臂开关。
在iPhone Gen 1和3G上: MPVolumeView滑块不会开始更改音量,直到通过AudioQueue API进行媒体播放,并且将在调用AudioSessionSetActive(false)时停止更改音量。更奇怪的是:如果您在播放过程中使用AudioQueue API时敲击iPhone上的摇杆开关,那么MPVolumeView滑块将在应用程序的整个使用期限内继续工作。
This code使所有内容保持同步,并且倾向于帮助确保摇杆开关和滑块保持同步,但它不能消除我在iPhone上使用MPVolumeView时遇到的问题。
我在这里的所有经验都是在iPhone OS 3.0和iPhone 3.0 SDK下。
我希望这有助于缩小你的问题。
我的下一个策略是开始用kAudioSessionProperty_AudioRoute做些事情,并尝试kAudioSessionProperty_AudioCategory的替代值来查看会发生什么。
附注: 感谢大家使用IB技术来创建和管理MPVolumeView。我使用代码来创建和放置它,并且我一直忘记了可以在IB中设置UIView类型的技巧。
边注2: 在与MPVolumeView工作,我发现,如果你设置音频类别比其他kAudioSessionCategory_MediaPlayback当iPhone设定为静音模式MPVolumeView将显示文本“iPhone ......”什么。
你在模拟器上试试吗?它不会在SIM卡上运行。在实际的手机上试试你的代码。我在我的一个应用程序中使用它,它工作得很好。 – lostInTransit 2009-01-22 05:01:22
我在真正的iPhone上试了一下。 – Domness 2009-01-24 13:27:45