Видео терпит неудачу на iOS после нескольких загрузок страницы - PullRequest
0 голосов
/ 28 июня 2018

Не удается загрузить локальное видео только на iOS. Это происходит только после загрузки одной и той же страницы несколько раз при переходе на страницу и от нее. Первые 10 или около того раз видео загружается нормально, а затем завершается с ошибкой мультимедиа 3 (см. Здесь: https://developer.mozilla.org/en-US/docs/Web/API/MediaError). После этого ни одно видео не будет воспроизводиться в приложении, пока оно не будет перезагружено.

Я на iOS 11.4, ionic 3. У кого-нибудь есть идеи?

HTML:

<ion-content class="ion-content--pulldown-bg">
    <div class="ion-content-wrapper">
        <video id="vid" loop preload="metadata" playsinline autoplay muted>
          <source src="assets/videos/dummy_video.mp4" type="video/mp4" />
        </video>
    </div>
</ion-content>

Машинопись:

  ionViewDidLoad() {
    this.videoElement = document.getElementById("vid") as HTMLMediaElement
    this.videoElement.onerror = () => {
    alert("Error " + this.videoElement.error.code + "; details: " + this.videoElement.error.message)
  }

1 Ответ

0 голосов
/ 29 июня 2018

Я нашел решение, которое сработало здесь: MEDIA_ERR_DECODE для видео HTML5 в iOS UIWebView после многих воспроизведений

Буфер аппаратного декодера не удалял видео после выгрузки страницы, вы должны сделать это вручную.

Ионное решение:

ionViewWillUnload() {
    // Clear the videos from the decoder buffer. 
    // Buffer fills up on iOS when multiple videos are loaded
    const elements = document.getElementsByTagName("video")
    for (let i = 0; i < elements.length; i++) {
        elements[i].src = ""
        elements[i].load()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...