2011-11-21 49 views
8

Creé un reproductor de video personalizado, todos los botones están funcionando. Necesito saber cuál es el código que hace que MPMoviePlayerController muestre los subtítulos cuando el video tiene esa opción. No encontré en ninguna parte un ejemplo o alguien que supiera qué código está detrás de este botón de subtítulos. ¿Dónde puedo encontrar esto?Cómo mostrar subtítulos dentro de MPMoviePlayerController

+8

No hay razón para gritar! – dasdom

Respuesta

2

Si su archivo multimedia tiene subtítulos incrustados MPMoviePlayerViewController mostrará un botón para habilitar/deshabilitar los subtítulos. Por defecto, los subtítulos están desactivados y no se pueden activar programáticamente.

En su lugar, puede usar AVPlayer con la propiedad closedCaptionDisplayEnabled. Pero solo iOS 4+

+2

¿'closedCaptionDisplayEnabled' enciende/apaga el subtítulo suave incrustado en el archivo de video? ¿Qué sucede si el archivo tiene varias pistas de subtítulos, puedo elegir entre, por ejemplo, inglés o francés mediante programación? La documentación dice casi nada, cualquier ayuda que pueda proporcionar es muy apreciada. ¡Gracias! –

+1

Tenga en cuenta que los subtítulos son diferentes ya que están incrustados en la transmisión de video (y requieren demultiplexión) mientras que los subtítulos son un archivo separado o una transmisión por separado. – jbat100

4

Tendrá que implementar su propio analizador de archivos de subtítulos. El formato de archivo .srt es bastante simple, here es una discusión sobre cómo analizarlo.

El bit más desafiante es sincronizar la visualización de los subtítulos (probablemente solo un UILabel colocado en la parte superior de la vista MPMoviePlayerController), con la hora actual de la película. Debe escribir una clase que puede solicitar subtitleStringAtTimeInterval: tipo de cosas (que mantiene los subtítulos en la memoria y hace que la recuperación de los subtítulos sea más rápida). A continuación, actualice los subtítulos a intervalos regulares (con NSTimer o un hilo de fondo que duerma durante un breve intervalo de tiempo entre cada actualización de subtítulos).

+1

¿Tiene algún código para esto? Me refiero a cómo integrar este código python al código MPMoviePlayerConroller en iOS. – Mrunal

+1

@Mason y ¿cree que a eso se refería el afiche? – jbat100

+1

@ jbat100 Después de volver a leer la pregunta original, veo que estaba equivocado y anulo el voto negativo cuando SO lo permite en unas pocas horas. Mis disculpas. –

2

No se necesita código ... AFAIK el botón se muestra automáticamente si los soft-subs están codificados en el video.

Ver aquí: http://www.bitfield.se/isubtitle/on_iphone_ipod.html

+1

Esa demostración es para el reproductor integrado, no la que aparece en el código cuando usa MPMoviePlayerController –

+0

Esto puede haber cambiado, pero en iOS 6, si la aplicación muestra el video en pantalla completa/ancha, el botón CC aparece allí también. Aunque sería bueno si la aplicación en sí pudiera habilitar el CC. –

Cuestiones relacionadas