2014-10-02 272 views
1

在我的应用程序中,我需要播放警报声。 如果另一个应用程序(如spotify)正在运行,那么当我运行我的代码时,它会在警报声播放时停止播放音乐。 是否有避免这种情况?iOS:在播放其他应用程序时播放声音

这是我的戏音码:

- (void)playSendSound 
{ 
    NSString* path; 
    NSURL* url; 

    path = [[NSBundle mainBundle] pathForResource:@"soundBit" ofType:@"aif"]; 
    url = [NSURL fileURLWithPath:path]; 
    player = nil; 
    player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL]; 
    [player play]; 
} 
+0

你怎么能找出像spotify其他应用程序正在运行? – Unheilig 2014-10-02 09:00:01

+0

当我运行应用程序(通过xcode或不)和spotify在后台播放时,它停止了来自spotify的声音... – user3576873 2014-10-03 12:12:57

回答

0

您正在使用AVAudioPlayer发挥你的警告声,并相信这将停止正在播放音乐的一切。

修改代码以下列:

NSString* path; 
NSURL* url; 

path = [[NSBundle mainBundle] pathForResource:@"soundBit" ofType:@"aif"]; 
url = [NSURL fileURLWithPath:path]; 
player = nil; 
player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL]; 
NSError *error = nil; 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&error]; 
[player play]; 

这应该防止将正在播放停止时,你玩你的警报声音的声音。

希望这会有所帮助。

+1

非常感谢你!我会尽快测试它,因为我的服务器现在停机了:( – user3576873 2014-10-06 11:48:38