2010-12-30 38 views
5

Tôi đang sử dụng AVPlayer để phát luồng âm thanh và có thể phát trực tiếp ở chế độ nền. Tôi tự hỏi làm thế nào tôi có thể xử lý một situtation nơi người dùng mất kết nối internet, để tôi có thể cung cấp một số thông tin phản hồi hoặc có thể cố gắng để thiết lập lại phát lại sau một vài giây.Làm thế nào để xử lý lỗi AVPlayer trong khi ứng dụng đang chạy trong nền?

EDIT: Tôi biết rằng câu hỏi liên quan đến AVPlayer, nhưng nếu bạn có câu trả lời với MPMoviePlayerController thì cũng có thể hữu ích. Ngay bây giờ, bằng cách sử dụng MPMoviePlayerController, tôi đang cố gắng để có được trường hợp MPMovieFinishReasonPlaybackError của MPMoviePlayerPlaybackDidFinishReasonUserInfoKey, bằng cách đăng ký MPMoviePlayerPlaybackDidFinishNotification nhưng nếu f.e. âm thanh của tôi đang phát ở chế độ nền và tôi bật chế độ trên máy bay, tôi không bao giờ nhận được thông báo này; Tôi chỉ nhận được MPMovieFinishReasonPlaybackEnded và tôi không biết cách tách biệt khỏi trường hợp người dùng tự dừng âm thanh.

Trả lời

4

Tôi đã thử tìm kiếm nguồn thực tế nhưng tôi nhớ đọc ở đâu đó rằng nếu phát lại âm thanh dừng (vì bất kỳ lý do gì), nó sẽ hủy chuỗi nền. Người viết về vấn đề này nói về việc có thể cho ăn một số nội dung âm thanh trống để giữ cho luồng còn sống. Bạn có thể gửi thông báo cục bộ từ lỗi gọi lại thông báo cho người dùng rằng âm thanh gặp phải lỗi và sẽ phải được khởi động lại thủ công từ bên trong ứng dụng. Đã không chơi xung quanh với các API đủ để biết được gọi lại là tốt nhất để sử dụng trong trường hợp này. Nếu tôi tìm thấy liên kết tôi đang tìm, tôi sẽ cập nhật.

EDIT: Đây là phần thưởng của Grant Pannell theo số audio streaming and multitasking.

+0

Liên kết đã chết: ( – jocull

+1

Tôi đã tìm thấy bản sao trên Way Back Machine http://web.archive.org/web/20110525032820/http://digitaldj.net/2010/07/03/ios4-multitasking- developers-hell/ – jocull

+0

@jocull sử dụng tốt webarchiver –

Các vấn đề liên quan