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 在后台不会继续播放下一首歌曲