【问题标题】:continue playing audio when iphone/device goes sleep or lockediphone/设备进入睡眠状态或锁定时继续播放音频
【发布时间】:2012-09-10 10:56:23
【问题描述】:

当 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);  

通过使用此代码,我的设备不会进入睡眠模式,但我想要的是,设备应该进入睡眠模式但音频不应该停止播放。
我在info.plist 文件中添加了Required background modesApp plays audio

请告诉我我哪里错了?为什么设备没有进入睡眠模式/锁定?

【问题讨论】:

标签: iphone ios xcode4 core-audio background-audio


【解决方案1】:

在 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];

对我来说很好用。

【讨论】:

  • 试过了。再次应用程序没有进入睡眠模式。我不知道问题出在哪里。
  • 您在我的 info.plist 文件中添加了必需的背景模式和 App 播放音频?
  • 是的。我已经添加了所有这些东西。
【解决方案2】:

首先,将这些框架包含到您的项目中:AudioToolbox、CoreAudio、MediaPlayer 和 AVFoundation。将它们全部导入到放置播放器的 viewController 中。分配并开始播放音频后,插入以下代码:

UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (sessionCategory), &sessionCategory);
AudioSessionSetActive(true);

最后,转到您的应用程序 Info.plist 文件并添加一个名为 UIBackgroundModes 的行。新行将是一个数组,将包含 1 个项目,即项目 0。为此,您只需将值设置为音频。你完成了!享受你的背景音频播放应用程序!

希望对您有所帮助。快乐编码:)

【讨论】:

  • 我已经试过了。唯一的问题是设备没有进入睡眠模式。
  • @Anshuk 我认为您提供的代码将使设备唤醒,直到应用程序处于前台。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-04
  • 2023-04-01
  • 1970-01-01
相关资源
最近更新 更多