音频反馈在前景和背景中

时间:2014-01-21 07:11:29

标签: ios iphone objective-c avaudioplayer

当我的应用处于前台和后台时,我必须提供音频反馈。但是,当应用程序进入后台时,听不到音频反馈。在info.plist中,我已将背景模式设置为App播放音频或使用AirPlay传输音频/视频并使用以下内容,但当应用程序进入后台并且未听到音频时,不会调用audioPlayerDidFinishPlaying委托。

 AVAudioPlayer *sound = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&err];
        sound.delegate = self;
        ///Fixed the issue No audible feedback when main audio is silent
        [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
        [[AVAudioSession sharedInstance] setActive: YES error: nil];
        // This is necessary if you want to play a sequence of songs, otherwise your app will be
        // killed after the first one finishes.
        [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

        [soundQueue addObject:sound];

1 个答案:

答案 0 :(得分:1)

您需要在plist文件中进行一些更改。

1)将所需的背景模式设置为App播放音频

2)设置应用程序不在后台运行到YES。

NSError *setCategoryErr = nil;
NSError *activationErr  = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr];
[[AVAudioSession sharedInstance] setActive:YES error:&activationErr];

然后,您需要在AppDelegate中编写这么多代码

现在,您可以在手机屏幕锁定或后台轻松运行音频。

对我来说很好。 :)

有关详情,请参阅Playing Audio in background modeAudio Session Programming Guide