AVAudioPlayer 后台任务不工作 [iOS]

Posted

技术标签:

【中文标题】AVAudioPlayer 后台任务不工作 [iOS]【英文标题】:AVAudioPlayer background task is not working [iOS] 【发布时间】:2012-04-24 08:11:59 【问题描述】:

我什么都试过了:

-设置信息.plist 所需的背景模式:应用播放音频;

-设置播放器:

 [[AVAudiosession sharedInstance] setDelegate: self];

// allow app continue to play when the screen is locked
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback
                                       error:nil];

UInt32 doSetProperty = 0;
AudioSessionSetProperty ( kAudioSessionProperty_OverrideCategoryMixWithOthers,
                         sizeof (doSetProperty),
                         &doSetProperty
                         );

// Registers the audio route change listener callback function
AudioSessionAddPropertyListener (
                                 kAudioSessionProperty_AudioRouteChange,
                                 audioRouteChangeListenerCallback,
                                 self
                                 );

// Activates the audio session.

NSError *activationError = nil;
[[AVAudioSession sharedInstance] setActive: YES error: &activationError];

[appSoundPlayer prepareToPlay];
[appSoundPlayer setVolume: 1.0];
[appSoundPlayer setDelegate: self];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

我忘记了什么?有什么问题吗?

【问题讨论】:

你能把你的代码发邮件给我吗?我已经研究过了,它工作正常,第二件事是你是在设备上还是在模拟器上测试过它。如果是模拟器,就不行了。 关注此链接***.com/questions/10276096/…。如果连你都不知道,请把你的代码发邮件给我,我会解决它 insha Allah, khalid0491@gmail.com 【参考方案1】:

您需要将音频类别设置为播放:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&error];

如果您想允许与其他应用混合音频,您可以添加此选项,只需确保在将音频会话设置为活动状态之前执行此操作。

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil];

现在您可以将音频会话设置为活动:

[[AVAudioSession sharedInstance] setActive:YES error:&error];

【讨论】:

这个答案救了我的培根!

以上是关于AVAudioPlayer 后台任务不工作 [iOS]的主要内容,如果未能解决你的问题,请参考以下文章

iOS AvPlayer AvAudioPlayer音频的后台播放问题

iOS 实现后台 播放音乐声音 AVAudioPlayer

iOS - AVAudioPlayer 在后台不会继续播放下一首歌曲

使用 AVAudioPlayer iOS 9 无法在后台播放音频

在后台播放一个 AVAudioPlayer 实例

多任务处理后 AVAudioPlayer 继续播放