AVAudioPlayer关闭iPod - 如何解决?

时间:2009-10-02 02:50:22

标签: iphone objective-c cocoa-touch

我使用AVAudioPlayer在我的应用程序中播放声音,但是当声音播放时它会关闭iPod。

有没有办法防止这种情况发生?我不想使用System Sounds,因为我无法控制它们的音量。

感谢您的帮助。

1 个答案:

答案 0 :(得分:15)

这应该对你有用(取自我的Ambiance应用程序)

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
UInt32 doSetProperty = 1;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(doSetProperty), &doSetProperty);
[[AVAudioSession sharedInstance] setActive: YES error: nil];

来自文档:

  

kAudioSessionProperty_OverrideCategoryMixWithOthers   改变了混合行为   kAudioSessionCategory_MediaPlayback   和   kAudioSessionCategory_PlayAndRecord   音频会话类别。设置这个   属性为TRUE(任何非零值)   允许混合iPod音频   应用音频。其他方面   这些类别,如他们的   响铃/静音开关行为,不是   影响。

     

此属性的值为FALSE(0)   默认情况下。当音频会话   类别更改,例如在   中断,这个的价值   属性恢复为FALSE。重新获得   然后必须重新设置混合行为   这个属性。

     

请务必检查是否设置此项   财产成功或失败,并做出反应   适当的;行为可能会改变   未来的iPhone OS版本。

     

适用于iPhone OS 3.0及更高版本。

     

在AudioServices.h中声明。