1

수신 된 오디오 또는 비디오 메시지를 채팅 거품에서 직접 재생할 수 있도록 AVPlayerViewController을 채팅 거품에 추가하려고합니다. 내 UITableView 목록에 이러한 거품이 많이 포함되어 있습니다. 나는 테이블 뷰를 스크롤 할 때 그러나, 응용 프로그램이 보여주는 추락됩니다 - 여기 아래 [AVPlayerViewController retain]: message sent to deallocated instance.- [AVPlayerViewController retain] : 할당 취소 된 인스턴스로 전송 된 메시지

각 채팅 거품에 AVPlayerViewController 객체를 추가하는 내 코드 : -

_playerViewController = [[AVPlayerViewController alloc] init]; 
_playerViewController.player = [AVPlayer playerWithURL:url]; 
_playerViewController.view.frame = CGRectMake(10.0, 5.0, 190.0 , 90.0); // self.view.bounds; 
_playerViewController.showsPlaybackControls = YES; 

[_playerViewController.view setTranslatesAutoresizingMaskIntoConstraints:YES]; 
[_playerViewController .view setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin]; 
[cell.contentview addsubview:_playerViewController.view]; 

이 URL은 파일 경로를 포함 (오디오/비디오), 개체를 UITableView 셀의 콘텐츠보기에 추가하려고하지만 위의 오류가 발생합니다. 누구든지 내가해야 할 일을 말해 줄 수 있습니까?

답변

1

모든 셀에는 AVPlayerViewController을 포함하면 안됩니다. 그것은 끔찍한 일이다!

모든 셀과 마찬가지로 동영상의 미리보기 이미지를 표시해야하며 URL 목록을 관리해야합니다. 이제 동영상을 재생하려면 공통 AVPlayerViewController을 사용하십시오. 나는 사용자가 셀을 탭하거나 셀의 버튼을 재생하면 그 URL을 플레이어에게 전달하고 비디오를 재생할 때를 의미합니다!

+0

제안 해 주셔서 감사합니다. 오디오 파일 재생 논리를 알려주시겠습니까? –

+0

@ Lion - 동일한 플레이어를 사용하여 오디오 파일을 재생해야합니까? –

+0

비디오를 만들고 재생하는 작업 메서드를 만들 수 있습니다 (문제의 코드와 비슷한 코드). 그런 다음 버튼 클릭이나'didselectrow'에서 선택한 비디오 URL을이 메서드로 전달하고 AVPlayerViewController를 만들고 비디오를 재생합니다! – Lion