如果设备已播放音乐,如何防止我的应用播放声音

时间:2012-12-19 21:43:18

标签: iphone ios audio

我正在开发一款iPhone应用程序,可以根据用户的要求播放自己的声音。

我的问题是,如果设备已播放音乐,我怎样才能在发布时禁用我的应用中的声音?

我知道我必须检测设备是否已播放音乐,但我该怎么做?

2 个答案:

答案 0 :(得分:3)

您可以像这样激活音频会话:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];

或者您可以创建一个[MPMusicPlayerController iPodMusicPlayer]实例并暂停音乐,但这不会暂停在其他应用中播放的音乐。

修改

如果您想检查iPod是否正在播放音乐,那么您可以执行以下操作:

MPMusicPlayerController *musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
if ([musicPlayer playbackState] == == MPMusicPlaybackStatePlaying)
   //iPod is playing music, do something here
}

您需要添加MediaPlayer框架。

答案 1 :(得分:0)

要检查您是否已经在播放音乐,可以执行以下操作:

(YES == ((AVAudioSession *)[AVAudioSession sharedInstance]).otherAudioPlaying)