es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué no funciona la transmisión de video en iOS 15.1?

Parece que en iOS 15 o 15.1 apareció un error que de alguna manera rompió la función de transmisión de video.

Encontré un par de enlaces relacionados con ese problema pero aún no lo he resuelto. Uso VueJS y he probado diferentes soluciones.

Entonces, no funciona en ningún navegador en iOS 15.1.

Lo que realmente hago
Tengo una etiqueta de video, en la cual pongo srcObject con una transmisión de video. El siguiente código funciona en todas partes excepto en iOS 15.1:

<template>
    <video autoplay="" playsinline="" ref="video" class="video" :class="{ 'video-mobile': $mq === 'sm' }"></video>
</template>
<script>
    // ...
    async mounted () {
      if (!this.deviceSupported) {
        this.handleError('NoSupportedDevice')
        return
      }

      try {
        let stream = await navigator.mediaDevices.getUserMedia(this.constraints)
        this.$refs.video.srcObject = stream

      } catch (error) {
        console.log(error, 'camera_error')
        this.handleError(error.name)
      }
    },
</script>

PERO lo que sucede es que si oculto y muestro la ventana del navegador, el video aparece. Incluso si no hago eso, aún puedo capturar una captura de pantalla del video, por lo que técnicamente la transmisión funciona. Lo único que no funciona es que la imagen de la etiqueta de video no aparece.

He probado diferentes soluciones:

  1. Usar v-show, v-if e inicializar el video en $nextTick.
  2. Usar el temporizador (por ejemplo, después de obtener los permisos de video, esperé un segundo y luego inicialicé el video con srcObject).

Sin éxito =\

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Problema con la reproducción de video en iOS 15/15.1

    Parece haber un error en iOS 15/15.1 que está causando problemas con la función de reproducción de video. Como experto en TI especializado en javascript, iOS, Vue.js, video y video-streaming, he estado tratando de encontrar una solución alternativa para este problema.

    Mi configuración involucra una etiqueta de video con srcObject que presenta un flujo de video. Este código funciona perfectamente en todos los navegadores excepto en iOS 15/15.1.

    He probado diferentes soluciones como usar v-show, v-if e inicializar el video en $nextTick, así como usar un tiempo de espera antes de inicializar el video con srcObject, pero ninguno de ellos parece funcionar.

    Curiosamente, si oculto y muestro la ventana del navegador, el video aparece. Además, todavía puedo capturar imágenes de video, lo que significa que el flujo realmente funciona. El único problema es que la imagen de la etiqueta de video no aparece.

    Todavía estoy tratando de encontrar una solución a este problema y seguiré actualizando este artículo a medida que descubra algo.

Comments are closed.