【发布时间】:2015-10-14 18:40:16
【问题描述】:
我想在前台、后台播放音频文件,它应该与静音开关一起使用,即如果静音开关打开,那么它不应该播放,如果静音开关关闭应该播放音频。
**我正在开发一个 SIP 呼叫应用程序。当用户接听电话时,应用程序应播放声音/铃声。如果应用程序在后台/前台,它应该播放,如果硬件静音开关打开/关闭,它应该静音/取消静音。
为此,我使用了带有以下代码的 AVPlyaer。
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:&error];
[session setActive:YES error:nil];
NSURL * audioFileUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test1" ofType:@"mp3"]];
AVPlayer *player = [[AVPlayer alloc] initWithURL: audioFileUrl];
[player play];
我还在 info.plist 的背景模式中添加了“应用程序使用 AirPlay 播放音频或流式传输音频/视频”
这在两种模式下都在播放,但在硬件静音开关打开时不会静音。
如果我使用AVAudioSessionCategoryAmbient 不在后台模式下播放。
我使用了 AVAudioPlayer,但在硬件开关打开时无法找到静音
【问题讨论】:
-
@Juan AVAudioSessionCategoryAmbient 不在后台播放
-
似乎不可能做到这一点
标签: ios audio audio-player avaudiosession mute