我正在使用以下代码在iPhone / iPod进入睡眠或锁定状态时继续播放音频。
mv = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://myurl/myMusic.mp3"]];
mv.movieSourceType = MPMovieSourceTypeUnknown;
[self.view addSubview:mv.view];
[mv play];
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (sessionCategory), &sessionCategory); AudioSessionSetActive(true);
通过使用此代码我的设备不会进入睡眠模式,但我想要的是,设备应该进入睡眠模式,但音频不应该停止播放。
我在Required background modes
文件中添加了App plays audio
和info.plist
。
请建议我哪里错了?为什么设备没有进入睡眠模式/锁定?
答案 0 :(得分:2)
在viewdidload中使用此代码:
NSError *setCategoryErr = nil;
NSError *activationErr = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryErr];
[[AVAudioSession sharedInstance] setActive: YES error: &activationErr];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid;
newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];
这对我来说很好。
答案 1 :(得分:1)
首先,将这些框架包含在您的项目中:AudioToolbox,CoreAudio,MediaPlayer和AVFoundation。将它们全部导入到放置播放器的viewController中。分配并开始播放音频后,插入以下代码:
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (sessionCategory), &sessionCategory);
AudioSessionSetActive(true);
最后,转到您的应用Info.plist文件并添加一行名为UIBackgroundModes的行。新行将是一个数组,将包含1项,项目0.对此,您只需将值设置为音频。而且你已经完成了!享受你的背景音频播放应用程序!
希望它有所帮助。快乐的编码:)