1

Я пытаюсь добавить AVPlayerViewController в чат-баннер, чтобы любые аудио- или видеосообщения при их получении могли непосредственно воспроизводиться в чате. Мой список UITableView содержит многие из этих пузырьков. Но когда я пытаюсь прокрутить вид таблицы, приложение получает разбился показ - [AVPlayerViewController retain]: message sent to deallocated instance.- [AVPlayerViewController сохранить]: сообщение отправлено на освобожденный экземпляр

Здесь ниже мой код для добавления 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-адрес содержит путь к файлу (аудио/видео), и я пытаюсь добавить объект _playerViewController к представлению содержимого ячейки UITableView, но он выдает указанную выше ошибку. Может кто-нибудь, пожалуйста, скажите мне, что я должен делать.

ответ

1

Каждая ячейка не должна содержать AVPlayerViewController. Это ужасно!

Вы должны управлять своими вещами, как и каждая ячейка, просто показывать миниатюру своего видео, и вы должны управлять массивом URL-адресов видео. теперь используйте общий AVPlayerViewController для воспроизведения любого видео. Я имею в виду, когда пользователь нажимает клетку или кнопку воспроизведения ячейки, а затем передает этот URL-адрес плееру и воспроизводит видео!

+0

Спасибо за предложение. Можете ли вы также сказать мне логику воспроизведения аудиофайлов, пожалуйста. –

+0

@ Lion. Должен ли я использовать одного и того же игрока, чтобы воспроизвести аудиофайлы? –

+0

вы можете создать метод действия, который создает и воспроизводит видео (аналогичный код, как вы показали в вопросе). затем при нажатии кнопки или в 'didselectrow' передать выбранный URL-адрес видео для этого метода и создать AVPlayerViewController и воспроизвести видео! – Lion