AVAudioSession阻止系统音频

Jum*_*hyn 2 iphone objective-c avaudioplayer avaudiosession

我正在编写一个播放背景音乐的应用程序,为此我正在使用AVAudioSession,如下所示:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
NSData *data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"song" ofType:@"mp3"]];
player = [[AVAudioPlayer alloc] initWithData:data error:NULL];
player.delegate = self;
[player setVolume:1.0];
...
[player prepareToPlay];
[player play];
Run Code Online (Sandbox Code Playgroud)

然后,稍后,用户可以选择禁用音乐.如果他们选择这样做,则运行以下代码:

[[AVAudioSession sharedInstance] setActive:NO error:nil];
[player stop];
Run Code Online (Sandbox Code Playgroud)

哪个成功阻止音乐播放.但是,如果音乐应用程序(或其他类似Spotify)的音乐启动,然后应用程序切换到,则用户音乐将淡出并暂停.我的应用程序的音乐无法播放,因为它仍处于禁用状态,因此用户可以保持沉默状态.

如何让我的应用程序暂停用户的音乐?

Mar*_*bri 10

当用户选择删除音频时,您必须执行以下操作:

[player stop];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
Run Code Online (Sandbox Code Playgroud)