Tôi đang phát triển trình phát âm thanh và đã khai báo trình nghe gián đoạn để lưu trạng thái của bài hát khi xảy ra gián đoạn - như cuộc gọi đến hoặc tin nhắn.Xử lý gián đoạn với Hàng đợi âm thanh
Đây là mã có liên quan
Trong appdelegate của tôi, tôi có điều này
AudioSessionInitialize (NULL, NULL, interruptionListenerCallback, self);
AudioSessionSetActive(YES);
Đây là những gì người nghe gián đoạn trông giống như
void interruptionListenerCallback (void *inUserData, UInt32 interruptionState) {
// This callback, being outside the implementation block, needs a reference
//to the AudioPlayer object
MyPlayer *player = (MyPlayer *)inUserData;
if (interruptionState == kAudioSessionBeginInterruption) {
if ([player audioStreamer]) {
// if currently playing, pause
[player pausePlayback];
player.interruptedOnPlayback = YES;
}
} else if ((interruptionState == kAudioSessionEndInterruption) && player.interruptedOnPlayback) {
// if the interruption was removed, and the app had been playing, resume playback
[player resumePlayback];
player.interruptedOnPlayback = NO;
}
}
Khi tôi nhận được một cuộc gọi điện thoại người nghe bị gián đoạn được gọi và nếu người dùng từ chối cuộc gọi phương pháp tiếp tục phát lại cũng được gọi. Nhưng trước khi phương pháp resumePlayback được gọi, tôi nhận được lỗi này trong giao diện điều khiển cho AudioQueueEnqueueBuffer
error: tca! error int: 560030580
Có ai có một ý tưởng về làm thế nào để xử lý một cách chính xác gián đoạn âm thanh khi streaming file âm thanh.
Cảm ơn.
Trong trường hợp của tôi, điều này là do tôi đã dừng phiên trước khi tạm dừng trình phát AVPlayer. – Drew