Потерять проигрыватель Youtube, когда он прокручивается из поля зрения из-за многократного использования ячеек в табличном представлении - PullRequest
0 голосов
/ 28 апреля 2018

Я создаю инстаграм, похожий на ленту новостей. Каждый пост - это либо потоковая песня Spotify, либо видео с YouTube, воспроизводимое в собственном представлении YTplayer. Если я проигрываю видеоэлемент, а затем прокручиваю канал, видео продолжает воспроизводиться, даже если вы его не видите. На этом этапе, если я прокручиваю сообщение и нажимаю кнопку воспроизведения, я хочу, чтобы видео перестало воспроизводиться. Я не могу этого сделать. Я пытался отследить ячейку «последнего воспроизведения» и остановить экземпляр YTplayer, но эта ячейка повторно используется этой точкой и не существует. Так что я не могу сделать это таким образом. У кого-нибудь есть идеи относительно того, как я могу это сделать?

Мой пользовательский класс ячеек таблицы имеет вид YTplayer, я загружаю только некоторые ячейки с идентификаторами видео YouTube, которые становятся видеоэлементами Youtube при загрузке представления таблицы.

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Я решил это. Сразу после моего dequeueReusableCell я проверяю, содержит ли ячейка видео пост. Я использую строковый флаг, который я установил в посте, чтобы сделать это. Если это так, я объявляю свой контроллер табличного представления как его делегат воспроизведения. С этого момента, если я играю в эту ячейку, прокручиваю до ячейки спойтива и играю в нее, я использую player.stopVideo (), чтобы остановить проигрыватель Youtube.

0 голосов
/ 28 апреля 2018

Я думаю, вам нужно реализовать

func tableView(_ tableView: UITableView,
           didEndDisplaying cell: UITableViewCell,
           forRowAt indexPath: IndexPath) {

   // access the playing video of the cell and stop it 

}
...