1

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

В большинстве случаев, когда это происходит, я просто нажимаю один раз на панели плеера, и он возобновится.

Теперь, я думаю, что столкнулся с этой ситуацией при программировании с помощью элементов HTML5 Audio и API Youtube. В большинстве случаев они работают хорошо, но когда соединение является пятнистым, оно просто прекратится и никогда не возобновится даже после того, как контент придет. Есть ли способ обойти эту проблему? Спасибо!

ответ

0

HTML5 Media Elements запускает много полезных events, которые могут помочь вам решить эту проблему. Я подумал бы о запуске таймера при срабатывании события waiting (что указывает на буферизацию), а затем периодически пытается возобновить воспроизведение дорожки до тех пор, пока не погаснет canplay.

Вы также можете позвонить load вместо play, а затем ждать canplaythrough пожаров (что указывает на то, что носители могут воспроизводиться непрерывно, без необходимости приостановки буферизации).

Конечно, возможно, что API YouTube предотвращает распространение этих событий на содержащую страницу, но стоит попробовать.