当设备被锁定时,AVAudioPlayer将无法播放

时间:2011-06-29 07:10:46

标签: objective-c ios cocoa-touch avaudioplayer

我在我的应用程序中使用AVAudioPlayer。当我选择播放的歌曲时,我的问题是,当设备被锁定时它不会播放。

3 个答案:

答案 0 :(得分:3)

您需要阅读Apple文档中的Executing Code in the Background。如果您将应用UIBackgroundModes中的Info.plist键设置为audio,则音频将在后台播放时继续播放。

请参阅上述文档中声明您支持的后台任务播放背景音频部分。

答案 1 :(得分:0)

我们需要通过两步让AVAudioPlayer在后台播放音乐:

第1步:选择项目 - >能力 - >启用后台模式 - >选择音频模式

第2步:使用此代码:

recCompanyInfo

请注意,使用此行即使应用程序位于后台,音乐也可以启动:

NSURL *soundURL = [[NSBundle mainBundle] URLForResource:@"demo" withExtension:@"mp3"];
avSound = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:nil];
[avSound setDelegate:self];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[avSound prepareToPlay];
[avSound setNumberOfLoops:-1];
[avSound setVolume:1.0]; 

答案 2 :(得分:-1)

据我所知,当设备锁定时无法播放声音。难道你不能只是禁止设备锁定和活动应用程序活动,直到用户手动关闭它?