AVPlayer individual con contenido de transmisión y sin transmisión

Estoy construyendo un reproductor de video que debe manejar tanto el contenido de streaming como el contenido que no se transmite, y quiero que sea jugable con AirPlay.

Actualmente estoy usando varias instancias de AVPlayer (una para cada clip), y funciona bien, pero el problema es que no brinda una experiencia muy suave al usar AirPlay. La interfaz salta hacia adelante y hacia atrás entre cada clip al cambiar AVPlayer , por lo que me gustaría migrar a utilizar un solo AVPlayer . Esto parece una tarea trivial, pero aún no he encontrado una manera de hacer esto.

Esto es lo que he intentado hasta ahora:

  1. Utilizando un único AVPlayer con varios AVPlayerItems y cambiando entre aquellos que usan replaceCurrentItemWithPlayerItem . Esto funciona bien cuando se cambia entre transmisión-> clips de transmisión o transmisión no-> transmisión , pero AVPlayer no parece aceptar reemploops entre transmisiones-> transmisión sin transmisión o viceversa. Básicamente, no pasa nada cuando trato de cambiar.

  2. El uso de un AVQueuePlayer con varios AVPlayerItems falla por el mismo motivo que el anterior.

  3. Utilizando un solo AVPlayer con un solo AVPlayerItem basado en un activo AVMutableComposition . Esto no funciona porque el contenido de transmisión no está permitido en una AVMutableComposition (y AVURLAssets creadas a partir de una url de transmisión no tiene AVAssetTracks y son necesarias).

Entonces, ¿hay algo que me falta? ¿Alguna otra sugerencia sobre cómo lograr esto?

Hice esta pregunta al Soporte Técnico de Apple y recibí la respuesta de que actualmente no es posible evitar el salto corto a la interfaz del menu, y que ninguna versión de AVPlayer admite la mezcla de transmisión y contenido que no se transmite.

Respuesta completa:

Esto responde a su pregunta sobre cómo evitar el salto corto de return a la interfaz principal al cambiar AVPlayers o AVPlayerItems para diferentes elementos multimedia mientras se reproduce en AirPlay.

El problema aquí es el mismo con AVPlayer y AVQueuePlayer: ninguna instancia de AVPlayer (independientemente de qué class particular) puede reproducir contenido de transmisión y no transmisión; es decir, no puede mezclar los medios HTTP Live Streaming (por ejemplo, .m3u8) con medios que no sean de transmisión (un recurso basado en files, como un file .mp4).

Y con respecto a AVMutableComposition, no permite la transmisión de contenido.

Actualmente, no hay soporte para reproducción de video "sin problemas" en varios elementos. Lo invito a presentar una request de mejora para esta function utilizando Apple Bug Reporter ( http://developer.apple.com/bugreporter/ ).

AVComposition es probablemente la mejor opción en la actualidad para reproducción "perfecta". Sin embargo, tiene la limitación que acabamos de describir en la que no está permitido transmitir contenido.