gpt4 book ai didi

iPhone:在后台播放音频播放列表?

转载 作者:行者123 更新时间:2023-12-03 18:43:48 25 4
gpt4 key购买 nike

我正在尝试使用 AVAudioPlayer 在后台播放音频文件序列。当应用程序不在后台时,它播放得很好,但是当应用程序进入后台时,它不会播放第二首歌曲。

这是我的代码:

-(void)playAudio:(NSString *)path{
NSURL *url = [NSURL fileURLWithPath:path];

NSError *error;
AVAudioPlayer *ap = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
ap.delegate = self;

mainController.audioPlayer = ap;
[ap release];


if (mainController.audioPlayer == nil)
NSLog([error description]);
else{


UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid;

[mainController.audioPlayer prepareToPlay];

if([mainController.audioPlayer play]){

newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];

}

if (newTaskId != UIBackgroundTaskInvalid && bgTaskId != UIBackgroundTaskInvalid)
[[UIApplication sharedApplication] endBackgroundTask: bgTaskId];

bgTaskId = newTaskId;
}

}

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{
NSLog(@"finished now next...");
[self playAudio:[self getNextAudio]];

}

我调试了应用程序,似乎当它要播放第二首歌曲时[mainController.audioPlayer play]返回NO,这意味着它无法播放。那你觉得怎么样?

<小时/>

更新

经过一些测试,似乎只有在设备锁定时它才能继续正常播放,但如果用户按下主页按钮并且应用程序转到后台,问题仍然存在

最佳答案

解决方案

只需添加 [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 和一些其他调整。一切都在这里

https://devforums.apple.com/message/264397

关于iPhone:在后台播放音频播放列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3297571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com