我使用同樣的技術,但我注意到以下行爲:
在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