Iphone 使AVFoundation framework在屏幕淡出时不褪色

Iphone 使AVFoundation framework在屏幕淡出时不褪色,iphone,audio,sleep,Iphone,Audio,Sleep,我正在为iPhone开发一些有声读物。我用的是AVFoundation。大概是这样的: NSString *path = [[NSBundle mainBundle] pathForResource:@"intro" ofType:@"mp3"]; player=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 我有个问题。当屏幕变暗时(单个音频文件可能很

我正在为iPhone开发一些有声读物。我用的是AVFoundation。大概是这样的:

NSString *path = [[NSBundle mainBundle] pathForResource:@"intro" ofType:@"mp3"];
        player=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
我有个问题。当屏幕变暗时(单个音频文件可能很长),音频停止播放

我用这串代码解决了这个问题

- (void)applicationDidFinishLaunching:(UIApplication *)application {

    // something else here...

    [[UIApplication sharedApplication] setIdleTimerDisabled:YES];

}
这不允许iPhone“睡眠”。然而,你可以猜到这是多么愚蠢:你的电池电量在几分钟内就会下降,而这在持续超过20小时的有声读物中是不可能的,例如

那么,你知道一种方法来防止当屏幕休眠时,AVAudioPlayer不会停止播放吗

谢谢。。。
Fabio

我建议您在开始播放音频文件后,告诉用户按电源按钮(而不是home按钮),这将锁定手机。它不会关闭你的应用程序,但会在你的应用程序在后台运行时关闭屏幕。目前有几个应用程序可以做到这一点。

将音频会话设置为
kAudioSessionCategory\u MediaPlayback
以在屏幕锁定时播放。

John花了很多时间回答我测试了你说的话,但似乎在我按下电源按钮后音频会消失,再次按下电源按钮后音频会消失。AVFoundation似乎要求屏幕打开。。。这可能吗?也尝试使用mediaplayer。。。我过去经常放录像。但在这种情况下,当我按下按钮后,音频也会消失。。。非常困惑:)嗨,多亏了你的提示,我找到了:UInt32 category=kAudioSessionCategory\u MediaPlayback//1 AudioSessionSetProperty(kAudioSessionProperty_AudioCategory、sizeof(category)和category)//2个音频会话设置(正确)//3但这是指哪个框架,AVFoundation还是MediaPlayer?谢谢:)它指的是你的应用程序的音频要求,因此也指的是你的应用程序使用的任何框架。这已经是我用英语写的奇迹了,你明白了:)对提示感到高兴;)