2012-01-24 16 views
5

Tengo una composición de AVMutable que he asociado con un AVPlayer. Parece que si agrego pistas a esta composición, el AVPlayer no reproduce las pistas añadidas a menos que establezca la composición en el reproductor nuevamente. En este momento estoy haciendo esto simplemente reemplazando el elemento actual con la misma composición que ya está configurada. Después de eso recoge las nuevas pistas.Recarga de AVMutableComposition

No he podido averiguar si esta es la forma correcta de hacerlo, de alguna manera parece un poco extraño tener que hacerlo así.

¿Alguna idea?

Gracias

+0

pero no ves que es extraño ?! si está eliminando una pista, entonces no necesita reemplazar el elemento del jugador, ¡¡y esta pista deja de reproducirse sin más reemplazos !!! – AMTourky

Respuesta

5

Básicamente aunque es mutable composición, manzana recomiendan para crear una composición inmutable y crear AVPlayerItem con fines de reproducción. Es un poco molesto, pero puedes darle la vuelta. Cuando desee actualizar el video, solo muestre la hora, cree otro AVPlayerItem y cárguelo en el momento adecuado.

Aquí es fragmento de la documentación AVMutableComposition de manzana

AVMutableComposition es una subclase mutable de AVComposition utiliza cuando se quiere crear una nueva composición de los activos existentes. Usted puede agregar y eliminar pistas, y puede agregar, eliminar y escalar el intervalo de tiempo .

Usted puede hacer una instantánea inmutable de una composición mutable para la reproducción o la inspección de la siguiente manera:

AVMutableComposition *myMutableComposition = 
    <#a mutable composition you want to inspect or play in its current state#>; 

AVComposition *immutableSnapshotOfMyComposition = [myMutableComposition copy]; 

// Create a player to inspect and play the composition. 
AVPlayerItem *playerItemForSnapshottedComposition = 
    [[AVPlayerItem alloc] initWithAsset:immutableSnapshotOfMyComposition]; 

Más información: Full Document

+1

gracias por la respuesta, eso es básicamente lo que estoy haciendo ahora, pero eso comprueba que esa es la manera de hacerlo. –

Cuestiones relacionadas