Изображение отката, когда мобильный браузер не поддерживает видео WebM

1

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

<video
  src={video}
  autoPlay>
  <img src={poster} />
</video>

Но в мобильном браузере Safari/Chrome/firefox в iOS, он показывает черный фон с не может играть значок. Это не откат, чтобы показать изображение, как я ожидаю.

И я также пытаюсь добавить атрибут poster к тегу video:

<video
  poster={poster}
  src={video}
  autoPlay>
  <img src={poster} />
</video>

И это:

<video
  loop
  autoPlay>
  <source src={video} type="video/webm" />
  <img src={poster} style={{ width: '100%', height: '100%' }} />
</video>

Это тоже не работает.

Кто-нибудь знает, как показать изображение, когда браузер не поддерживает WebM.

  • 2
    @bhansa здесь не тег, который не поддерживается, а медиа. Для OP, вы всегда можете прослушать событие error . Я думаю (не проверено), что плакат + onerror = e => this.src = "" сделает это.
Показать ещё 1 комментарий
Теги:
webm

1 ответ

0
Лучший ответ

Как сказал @Kaiido, это не тег, который поддерживался, но носители, и большинство мобильных браузеров не размещают плакат снова, когда сбрасывается src.

Поэтому я должен заменить изображение напрямую.

Я использую React как свой стек, вот мое решение:

class App extends PureComponent {
  state = {
    isSupportWebM: true,
  }

  componentDidMount(){
    const videoElement = document.querySelector('.video');
    videoElement.addEventListener('error', () => {
      this.setState({
        isSupportWebM: false,
      });
    });
  }

  componentWillUnmount(){
    // remove the listener
  }

  render(){
     const {
       isSupportWebM,
     } = this.state;
     return (
       <div>
         {
           isSupportWebM
           ? <video src={...}></video>
           : <img src={...} />
         }
       </div>
     )
  }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню