【发布时间】:2025-12-16 11:35:01
【问题描述】:
我注意到某些应用程序会在启动时以编程方式将 iTunes 静音(如果它正在运行)。这是如何实现的?我有一个带有背景音乐的游戏,我想停止 iTunes,或者至少收到一条 iTunes 正在播放的消息,以便我可以停止游戏的背景音乐。
谢谢, 马克。
【问题讨论】:
我注意到某些应用程序会在启动时以编程方式将 iTunes 静音(如果它正在运行)。这是如何实现的?我有一个带有背景音乐的游戏,我想停止 iTunes,或者至少收到一条 iTunes 正在播放的消息,以便我可以停止游戏的背景音乐。
谢谢, 马克。
【问题讨论】:
你不需要。使用音频会话,您可以决定音频的行为方式。
来自Audio Session Programming Guide:
使用音频会话界面,您 指定应用程序的各个方面 音频行为并将其配置为 在 iPhone 中和谐地生活 音频环境。你先问 诸如此类的问题:
您希望您的音频通过响铃/静音开关静音吗? 如果有音频,答案可能是“是” 对使用您的 申请成功。 (用户将 感谢能够运行你的游戏 在没有人比谁更聪明的会议上。)
您是否希望 iPod 音频继续播放 开始?这可能适用于 一台虚拟钢琴,让用户弹奏 以及他们图书馆中的歌曲。 您希望 iPod 音频停止, 但是,对于流式收音机 申请。
你可能想要这个:
UInt32 sessionCategory = kAudioSessionCategory_SoloAmbientSound;
AudioSessionSetProperty (
kAudioSessionProperty_AudioCategory,
sizeof (sessionCategory),
&sessionCategory
);
更多行为类型,查看Audio Session Categories,或阅读整个Audio Session Programming Guide。
【讨论】:
我遇到了相反的问题。我的应用在启动后播放一段没有声音的短视频。这导致在后台播放的 iTunes 音乐静音。
为了让音乐一直播放,我在applicationDidFinishLaunching中添加了这个:
NSError* error;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: &error];
if (error) NSLog(@"Unable to configure Audio");
【讨论】: