【问题标题】:AVAudioPlayer turns off iPod - how to work around?AVAudioPlayer 关闭 iPod - 如何解决?
【发布时间】:2010-12-03 05:07:47
【问题描述】:

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

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

感谢您的帮助。

【问题讨论】:

    标签: iphone objective-c cocoa-touch


    【解决方案1】:

    这应该适合你(取自我的 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 中声明。

    【讨论】:

    • 把它放在应用程序委托中。对我来说工作得很好。玩得开心,谷歌同事 ;)
    • 太棒了!谢谢!对于像我这样的其他初学者:要获得此链接,您需要执行 #import 并链接 AudioToolbox 框架。有关如何在 XCode 4.2 中执行此操作的帮助,请查看此处:stackoverflow.com/questions/3352664/…
    • 这仍然是在 iOS 7 中实现这一目标的最佳方式吗?
    • @MattLoszak 我会在 devforums 中问这个问题,因为 iOS 7 处于 NDA 之下
    • 自 iOS7 起已弃用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    相关资源
    最近更新 更多