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?
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 –
Lỗi này vẫn tồn tại trên iOS7.1 SDK –
@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