【问题标题】:iPhone: How to detect if iTunes is playing?iPhone:如何检测 iTunes 是否正在播放?
【发布时间】:2025-12-16 11:35:01
【问题描述】:

我注意到某些应用程序会在启动时以编程方式将 iTunes 静音(如果它正在运行)。这是如何实现的?我有一个带有背景音乐的游戏,我想停止 iTunes,或者至少收到一条 iTunes 正在播放的消息,以便我可以停止游戏的背景音乐。

谢谢, 马克。

【问题讨论】:

    标签: iphone audio itunes


    【解决方案1】:

    你不需要。使用音频会话,您可以决定音频的行为方式。

    来自Audio Session Programming Guide

    使用音频会话界面,您 指定应用程序的各个方面 音频行为并将其配置为 在 iPhone 中和谐地生活 音频环境。你先问 诸如此类的问题:

    • 您希望您的音频通过响铃/静音开关静音吗? 如果有音频,答案可能是“是” 对使用您的 申请成功。 (用户将 感谢能够运行你的游戏 在没有人比谁更聪明的会议上。)

    • 您是否希望 iPod 音频继续播放 开始?这可能适用于 一台虚拟钢琴,让用户弹奏 以及他们图书馆中的歌曲。 您希望 iPod 音频停止, 但是,对于流式收音机 申请。

    你可能想要这个:

    UInt32 sessionCategory = kAudioSessionCategory_SoloAmbientSound;
    AudioSessionSetProperty (
        kAudioSessionProperty_AudioCategory,
        sizeof (sessionCategory),
        &sessionCategory
    );
    

    更多行为类型,查看Audio Session Categories,或阅读整个Audio Session Programming Guide

    【讨论】:

      【解决方案2】:

      我遇到了相反的问题。我的应用在启动后播放一段没有声音的短视频。这导致在后台播放的 iTunes 音乐静音。

      为了让音乐一直播放,我在applicationDidFinishLaunching中添加了这个:

      NSError* error;
          [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: &error];    
          if (error) NSLog(@"Unable to configure Audio");
      

      【讨论】: