2012-05-16 12 views
5

He utilizado seekToTime en mi aplicación y está funcionando correctamente. Pero quiero tener más información al respecto. Es decir, si tengo un archivo de video en tiempo real de 1 minuto ahora quiero jugarlo desde el segundo 15 al segundo 45 (los primeros 15 segundos y los últimos 15 segundos no se reproducirán).AVPlayer seektoTime iPhone

¿Cómo puedo hacerlo?

Sé que mediante el uso de seekToTime puedo reproducir un video a partir del 15º segundo, pero ¿cómo detenerlo en 45º y también me hago notar por el método que ha seguido el video durante el período de tiempo especificado?

CMTime timer = CMTimeMake(15, 1); 
[player seekToTime:timer]; 

El código anterior me lleva a la segunda 15 del archivo de transmisión, pero cómo detenerlo en la 45.a segundo y reciba notificación también?

He buscado mucho pero no he podido obtener ninguna información.

Gracias

EDIT:

Como @codeghost sugirió, basta con utilizar forwardPlaybackEndTime.

puede simplemente usar:

yourAVPlayerItem.forwardPlaybackEndTime = CMTimeMake(10, 1); 

Aquí 10 es el tiempo hasta la AVPlayerItem jugará.

+0

¿forwardPlaybackEndTime funciona para usted? – onmyway133

+0

Sí funcionó, tuvo que implementar algunas lógicas y comenzó a funcionar según mi requisito –

+0

¿Puedes echar un vistazo a mi pregunta http://stackoverflow.com/questions/25717819/forwardplaybackendtime-does-not-work? El jugador todavía juega al final – onmyway133

Respuesta

7

Establezca la propiedad forwardPlaybackEndTime en su AVPlayerItem.

+0

gracias codeghost, ¿Cómo puedo usarlo en mi código? ¿Tiene algún enlace de referencia por ejemplo/tutorial relacionado con este forwardPlaybackEndTime? –

+2

Consulte el guid del sistema de reproducción en Xcode, pero todo lo que necesita es hacer es establecerlo, por ejemplo "playerItem.forwardPlaybackEndTime = CMTimeMake (45, 1);". Cree un AVQueuePlayer con su AVPlayerItem y juegue como lo hace hoy. – codeghost

+0

Gracias, hermano :) me salvaste el día –

0

no sé si hay algo construir-en para esto en AVPlayer, pero lo que me gustaría hacer es construir una función y lo llaman con:

[self performSelector:@selector(stopPlaying) withObject:nil afterDelay:45]; 


-(void)stopPlaying{ 
    [player pause]; 
} 

que esto dejar de jugar después de 45 segundos, y, por supuesto, puede poner 45 segundos en cualquier cantidad que desee.

+0

Tienes razón, esta es otra forma de detener al reproductor, pero como codeghost sugirió forwardPlaybackEndTime, lo busco de esa forma para usarlo en el código, pero hasta ahora no tiene ningún fragmento de código o ejemplo. La documentación de Apple es pobre relacionada con AVFoundation. Es muy difícil de entender –

0

Puede usar [AVPlayer addPeriodicTimeObserverForInterval:queue:usingBlock:] para ese fin.

Obtenga el AVPlayer.currentTime periódicamente y llame a la pausa o finalice el tiempo exacto.

Cuestiones relacionadas