Медиа приостанавливается из-за медленной буферизации, а затем никогда не восстанавливается.Как справиться с этой ситуацией? - PullRequest
1 голос
/ 03 апреля 2012

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

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

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

1 Ответ

0 голосов
/ 03 апреля 2012

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

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

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

...