Estoy usando estos métodos para reproducir videos con AVPlayer:

        audioPlayer = [[AVPlayer playerWithURL:[NSURL URLWithString:url]] retain];
        avPlayerLayer = [[AVPlayerLayer playerLayerWithPlayer:audioPlayer] retain];
        [avPlayerLayer setFrame:self.view.bounds];

        [audioPlayer play];

Busco una forma de recibir una notificación cada vez que se realiza el proceso de transmisión (algo como 1%, 10%, 25%, 50%, 60% ...), ¿puedo obtener algo como esto de AVPlayer ??

0
YosiFZ 28 mar. 2012 a las 19:10

1 respuesta

La mejor respuesta

Eche un vistazo a la documentación, necesita implementar este método:

http://developer.apple.com/library/mac/#documentation/AVFoundation/Reference/AVPlayer_Class/Reference/Reference.html#//apple_ref/occ/instm/AVPlayer/addPeriodicTimeObserverForInterval:queue:usingBlock:

Un ejemplo:

[mPlayer addPeriodicTimeObserverForInterval:CMTimeMake(1, 1)
         queue:NULL
         usingBlock:^(CMTime time){
             NSLog(@"%lld %d ",mPlayer.currentTime.value,mPlayer.currentTime.timescale);
         }
];

Para obtener el tiempo total del video puede hacer:

mPlayer.currentItem.duration

También puede obtener el currentTime del elemento:

mPlayer.currentItem.currentTime

Editar :

Eche un vistazo a Referencia de CurrentItem

Probablemente quieras algún método como:

LoadedTimeRanges

1
ggrana 28 mar. 2012 a las 20:27
Bien, este es el tiempo del proceso de reproducción, pero lo que busco es el proceso de descarga que es rápido desde la reproducción.
 – 
YosiFZ
28 mar. 2012 a las 20:22
Ok, edito la respuesta, puedes obtener información sobre el artículo. Puede obtener matrices de lo que ya está cargado y así sucesivamente.
 – 
ggrana
28 mar. 2012 a las 20:29