Tôi có AVPlayer mà tôi tải lên chế độ xem mới bất cứ khi nào liên kết được nhấp.Không thể xóa hoặc dừng AVPlayer
-(void)createAndConfigurePlayerWithURL:(NSURL *)movieURL sourceType:(MPMovieSourceType)sourceType {
self.playerItem = [AVPlayerItem playerItemWithURL:movieURL];
customControlOverlay = [[AFDetailViewController alloc] initWithNibName:@"AFMovieScrubControl" bundle:nil];
backgroundWindow = [[UIApplication sharedApplication] keyWindow];
[customControlOverlay.view setFrame:backgroundWindow.frame];
[backgroundWindow addSubview:customControlOverlay.view];
playerLayer = [AVPlayerLayer playerLayerWithPlayer:[AVPlayer playerWithPlayerItem:playerItem]];
[playerLayer.player play];
playerLayer.frame = customControlOverlay.view.frame;
[customControlOverlay.view.layer addSublayer:playerLayer];
}
Đoạn mã trên cho biết thêm AVPlayer vào ứng dụng của tôi và hoạt động tốt. Tôi có một chuyển đổi trong nib customControlOverlay của tôi mà nên loại bỏ xem và ngăn chặn các AVplayer từ chơi.
-(IBAction)toggleQuality:(id)sender {
if (qualityToggle.selectedSegmentIndex == 0) {
NSLog(@"HD");
[playerLayer.player pause];
[self.view removeFromSuperview];
} else if (qualityToggle.selectedSegmentIndex == 1) {
NSLog(@"SD");
}
}
Chế độ xem được xóa đúng cách nhưng trình phát vẫn phát trong nền. Sau khi thử nghiệm một chút, người chơi sẽ không trả lời bất kỳ mã nào trong phương thức toggleQuality nhưng các chuỗi tôi có ở đó khi các kiểm tra được ghi lại.
Bất kỳ suy nghĩ nào về những gì tôi đang làm sai?
Sử dụng trình phátLayer.player = nil; trước khi bạn xóa khỏi superview –
Âm thanh tiếp tục phát ngay cả khi tôi làm điều đó. – AFraser
Nếu bạn làm điều đó theo thứ tự khác (loại bỏ và sau đó đặt thành nil)? – Squatch