如何检测其他应用是否正在播放背景音频?

时间:2010-06-30 19:10:08

标签: iphone objective-c audio background

我正在为iphone / ipad制作游戏,并且不希望我的背景音乐干扰用户可能已经在播放的音乐。

我知道我可以使用MPPlayerController获取iPod应用程序的状态,但是我的应用程序如何判断Pandora等其他东西是否在iOS4上播放背景音频?

2 个答案:

答案 0 :(得分:9)

我终于弄明白了。我见过很多例子,但是无法让它们起作用。

大多数示例都没有指出类似的内容:

    UInt32   propertySize, audioIsAlreadyPlaying;

propertySize = sizeof(UInt32);
AudioSessionGetProperty(kAudioSessionProperty_OtherAudioIsPlaying, &propertySize, &audioIsAlreadyPlaying);

要工作,添加到您应用程序的正确框架是AudioToolbox。我一直试图添加其他音频框架,总是错过了那个。

一旦你添加了那个框架工作(并将其导入到有问题的代码文件中),只需测试一下audioIsAlreadyPlaying是零还是一个。

答案 1 :(得分:0)

从iOS 7开始,

AudioSessionGetProperty(在gotung的回答中提及)已被弃用。

相反,请尝试使用isOtherAudioPlaying

的单行
BOOL isOtherAudioPlaying = [[AVAudioSession sharedInstance] isOtherAudioPlaying];

适用于iOS 6 +。