Содержимое mp4 не воспроизводится на веб-страницах, обслуживаемых интернет-браузером Samsung

У меня есть веб-сайт, который может воспроизводить медиафайлы mp4 (через тег <video> и через DASH) в любом браузере, кроме интернет-браузера Samsung, который используется по умолчанию на телефонах Samsung Galaxy и, возможно, на многих других устройствах Samsung.

На настольном компьютере, iPad или даже на древнем планшете HP TouchPad все работает нормально. При использовании других браузеров на том же устройстве Samsung (например, Chrome) медиафайлы в формате mp4 воспроизводятся нормально, поэтому это не является ограничением Android или аппаратного обеспечения устройства.

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

Вот быстрый тест, если вы хотите попробовать его на своем устройстве. Он пытается воспроизвести 3 немного разных типа медиафайлов mp4 на одной странице:

http://2pic.me/dashtest.html

На моем Samsung Galaxy S6 ни один из них не воспроизводится в интернет-браузере Samsung.

Я пытался использовать video.js, но это не изменило поведение.

Обновление:

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


person Haydentech    schedule 01.12.2017    source источник
comment
Поддерживается ли BLOB видео Samsung Internet?   -  person Antonios Tsimourtos    schedule 22.03.2019


Ответы (3)


Я столкнулся с той же проблемой в браузере Samsung (последняя версия: v6.2.01.12) на устройстве Samsung Galaxy 7. В моем случае я использовал video.js и играл в HLS. Проблема, которую я обнаружил, заключалась в том, что автозапуск не работал. Мое решение состояло в том, чтобы попытаться воспроизвести видео программно, и если обнаружен сбой (отказ от обещания), затем отобразить кнопку PLAY и воспроизвести видео в щелчке пользователя. Это сработало для меня. Это будет что-то вроде:

const video = document.getElementById('my-video');
video.play()
  .catch((err) => {
    if (err.name === 'NotAllowedError') {
      // Display PLAY button with a click event listener and play the video there.
    }
  });

Это упрощенный код, я выполняю специальные проверки, чтобы увидеть, является ли my-video фактическим элементом <video>, и возвращает ли video.play() обещание и все основные безопасные проверки (поскольку это поддерживается во многих других браузерах). Но это показывает идею, как справиться с неработающим сценарием автозапуска.

Я надеюсь, что это помогает!

person elbecita    schedule 06.12.2017
comment
Вау, это очень полезная информация! Каждое видео на моем сайте воспроизводится автоматически без каких-либо элементов управления, поэтому мне никогда не приходило в голову попытаться показать элементы управления или воспроизвести их вручную через JS. Я всегда предполагал, что это ограничение кодека в этом браузере. - person Haydentech; 08.12.2017
comment
Вызов play() не работает в браузере Samsung, но, по крайней мере, у меня есть какое-то решение в виде активации элементов управления (которые работают). Спасибо! - person Haydentech; 08.12.2017

В настоящее время мобильный браузер Samsung не поддерживает HTML5 Media Source Extensions (MSE) — они необходимы для воспроизведения DASH.

Вы можете проверить поддержку MSE в браузере, используя несколько онлайн-ссылок, например:

person Mick    schedule 03.12.2017
comment
Я очень запутался, потому что caniuse.com/#feat=mediasource, кажется, подразумевает, что браузер Samsung поддерживает MSE начиная с 5.0 (я использую 6.2), и что Safari на iOS не поддерживает MSE. Я обнаружил, что в обоих случаях верно обратное. - person Haydentech; 04.12.2017

У меня это работает нормально, вы можете отключить звук, если нужно воспроизвести более одного видео, проверьте это:

<pre>
  <video class="video" webkit-playsinline="" playsinline="" muted="" autoplay="" loop="" preload="auto" width="100%" height="auto" controles=""> 
    <source src="wp-content/uploads/talkforweb.com.au.mp4" type="video/mp4">
  </video>
</pre>
person Vin    schedule 30.10.2018
comment
Похоже, Samsung наконец-то идет в ногу со временем и обновляет свой браузер с тех пор, как мой вопрос был первоначально опубликован. - person Haydentech; 01.11.2018