【发布时间】:2010-12-03 05:07:47
【问题描述】:
我使用 AVAudioPlayer 在我的应用程序中播放声音,但它会在播放声音时关闭 iPod。
有没有办法防止这种情况发生?我不想使用系统声音,因为我无法控制它们的音量。
感谢您的帮助。
【问题讨论】:
标签: iphone objective-c cocoa-touch
我使用 AVAudioPlayer 在我的应用程序中播放声音,但它会在播放声音时关闭 iPod。
有没有办法防止这种情况发生?我不想使用系统声音,因为我无法控制它们的音量。
感谢您的帮助。
【问题讨论】:
标签: iphone objective-c cocoa-touch
这应该适合你(取自我的 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 中声明。
【讨论】: