2012-05-31 25 views
6

Tôi có một ứng dụng xử lý phát trực tuyến video. Bắt đầu với một danh sách nhạc .m3u8, nó tạo ra một loạt các AVAssets, và làm bật qua chúng bằngAVPlayer không chuyển đổi giữa tải xuống và phát trực tuyến liên tục

[player replaceCurrentItemWithPlayerItem:[AVPlayerItem playerItemWithAsset:[assetItems objectAtIndex:index]]] 

này hoạt động tốt, nhưng trước đó tôi muốn phát sóng một đoạn video mp4 ngắn sử dụng tải tiến bộ. Tôi nạp AVPlayer sử dụng

AVAsset *prerollAsset = [AVAsset assetWithURL:prerollURL]; 
[player replaceCurrentItemWithPlayerItem:[AVPlayerItem playerItemWithAsset:prerollAsset]]; 

Nó đóng, nhưng khi tôi tiếp tục với các video streaming như trước đây, tôi nhận được một trạng thái của AVPlayerStatusFailed, với các lỗi trong AVPlayerItem của The operation could not be completed

Đối với nó để làm việc, tôi cần phải tạo một đối tượng AVPlayer cho preroll (progressive download), và sau đó là một đối tượng AVPlayer hoàn toàn mới để bắt đầu phát video trực tuyến.

Có thể một phiên bản AVPlayer đơn lẻ không có khả năng phát video tải xuống lũy ​​tiến, sau đó là phát trực tuyến video? Hoặc có thể có cái gì khác tôi đang làm sai?

+1

Tôi gặp sự cố tương tự. Với MPMoviePlayerController có thuộc tính movieSourceType mà chúng ta có thể thiết lập nhưng không phải với AVPlayer hoặc AVPlayerItem –

+0

Lỗi này vẫn tồn tại trên iOS7.1 SDK –

+0

@KentNguyen trễ một chút, nhưng bạn có thể đọc https://developer.apple.com/library/mac/ Tài liệu/AudioVideo/Khái niệm/AVFoundationPG/Bài viết/02_Playback.html, xem phần ** Để tạo và chuẩn bị luồng trực tiếp HTTP để phát lại ** – onmyway133

Trả lời

2

Lỗi này là sự cố đã biết và được cố định cố định trong bản phát hành chính tiếp theo của iOS.

Tạm thời, tạo đối tượng AVPlayer mới là giải pháp thay thế duy nhất được biết.

+1

Theo các kỹ sư của Apple tại WWDC14, iOS 8 vẫn có vấn đề này. Họ cũng đề cập đến nó rất thấp trong danh sách ưu tiên của họ. Quay lại giải pháp! – coco

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