Tôi đang phát nhạc bằng AVAudioPlayer ở chế độ nền. Vấn đề là: nếu có một cuộc gọi đến làm gián đoạn trình phát, nó sẽ không bao giờ tiếp tục trừ khi chuyển sang tiền cảnh và thực hiện thủ công.Cách tiếp tục AVAudioPlayer sau khi bị gián đoạn trong nền
Mã này rất đơn giản, để chơi nó ở chế độ nền:
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error: nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
url = [[NSURL alloc] initFileURLWithPath:...];
audio_player = [[AVAudioPlayer alloc] initWithContentsOfURL: url error:NULL];
audio_player.delegate = self;
bool ret = [audio_player play];
đại biểu để xử lý gián đoạn:
-(void)audioPlayerBeginInterruption:(AVAudioPlayer *)player
{
//tried this, not working [[AVAudioSession sharedInstance] setActive: NO error: nil];
NSLog(@"-- interrupted --");
}
//----------- THIS PART NOT WORKING WHEN RUNNING IN BACKGROUND ----------
- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player
{
NSLog(@"resume!");
//--- tried, not working: [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error: nil];
//--- tried, not working: [[AVAudioSession sharedInstance] setActive: YES error: nil];
//--- tried, not working: [audio_player prepareToPlay];
[audio_player play];
}
Bất kỳ một thể giúp tôi?
Cùng một pb, bạn có tìm thấy giải pháp không? – fvisticot
cho đến thời điểm này, không. Nhưng có một giải pháp. Ứng dụng cửa hàng Apple mẫu đã làm điều đó. – Paul