Tôi đang cố gắng cho phép người dùng có thể duyệt qua video, thay đổi URL AVPlayer khi đang di chuyển mà không làm mới chế độ xem. Tuy nhiên, ngay bây giờ tôi chỉ là instantiating AVPlayer đối tượng mỗi khi một video được chơi (kết quả là âm thanh được chơi qua nhau), mà tôi cảm thấy không phải là cách tốt nhất để làm điều này. Có cách nào hiệu quả hơn tương tự như thay đổi hình ảnh trong một imageView không?Phát video từ URL mới mà không cần tạo đối tượng AVPlayer mới
Đây là mã nơi tôi đóng clip:
player = AVPlayer(URL: fileURL)
playerLayer = AVPlayerLayer(player: player)
playerLayer!.frame = self.view.bounds
self.view.layer.addSublayer(playerLayer!)
player!.play()
Như tôi đã nói, không truy cập đối tượng AVPlayer sau khi bạn tạo; thay vào đó, chỉ làm việc với currentItem của nó. –
@JamesBush Thật vậy, bạn là một phương pháp tốt hơn. Một tùy chọn khác là sử dụng AVQueuePlayer, thêm tất cả các URL có thể là một mảng AVPlayerItems và sau đó chèn mảng đó vào hàng đợi và sắp xếp lại mảng đó khi đang di chuyển. Điều này sẽ cho phép video tiếp theo xếp hàng để bắt đầu lưu vào bộ đệm trong khi video trước đó vẫn đang phát – MikeG
Hoặc: [self.player prerollAtRate: 1.0 completionHandler:^(BOOL hoàn thành) { [self.player play]; [self.player setRate: 1.0]; }]; –