2011-11-21 14 views
8

Zbudowałem własny odtwarzacz wideo, wszystkie przyciski działają. Muszę wiedzieć, jaki jest kod, który wyświetla napisy MPMoviePlayerController, gdy wideo ma tę opcję. Nigdzie nie znalazłem przykładu lub kogoś, kto wiedział, jaki kod znajduje się za tym przyciskiem napisów. Gdzie mogę to znaleźć?Jak wyświetlać napisy w MPMoviePlayerController

+8

Nie ma powodu do krzyku! – dasdom

Odpowiedz

2

Jeśli plik multimedialny zawiera osadzone napisy MPMoviePlayerViewController wyświetli przycisk do włączania/wyłączania napisów. Domyślnie napisy są wyłączone i nie można ich aktywować programowo.

Zamiast tego można użyć AVPlayer z właściwością closedCaptionDisplayEnabled. Ale tylko iOS 4+

+2

Czy "closedCaptionDisplayEnabled" włącza/wyłącza podtytuł "soft-subtitle" osadzony w pliku wideo? Co się stanie, jeśli plik będzie zawierał wiele ścieżek napisów, czy mogę wybrać programowo, na przykład, angielski lub francuski? Dokumentacja mówi prawie nic, każda pomoc, jaką możesz zapewnić, jest bardzo doceniana. Dzięki! –

+1

Należy zauważyć, że napisy zamknięte różnią się tym, że są osadzone w strumieniu wideo (i wymagają demultipleksowania), podczas gdy napisy są oddzielnym plikiem lub oddzielnym strumieniem. – jbat100

4

Będziesz musiał zaimplementować własny parser plików napisów. Format pliku .srt jest dość prosty, here jest dyskusją o tym, jak go parsować.

Trochę trudniej jest wtedy zsynchronizować wyświetlanie napisów (prawdopodobnie po prostu UILabel umieszczona na górze widoku MPMoviePlayerController) z bieżącym czasem filmu. Powinieneś napisać klasę, którą możesz poprosić o subtitleStringAtTimeInterval: coś w tym stylu (która utrzymuje napisy w pamięci i przyspiesza pobieranie napisów). Następnie aktualizuj napisy w regularnych odstępach czasu (z NSTimer lub wątkiem tła, który śpi przez krótki czas pomiędzy aktualizacjami napisów).

+1

Czy masz jakiś kod do tego? Chodzi mi o to, jak zintegrować ten kod Pythona z kodem MPMoviePlayerConroller w iOS. – Mrunal

+1

@Mason i czy sądzisz, że tak właśnie miał na myśli plakat? – jbat100

+1

@ jbat100 Po ponownym przeczytaniu pierwotnego pytania widzę, że się myliłem i cofnę głosowanie, gdy SO zezwoli na to za kilka godzin. Przepraszam. –

2

Kod nie jest wymagany ... AFAIK Przycisk automatycznie pokazuje, czy subwoofery są zakodowane w wideo.

Zobacz tutaj: http://www.bitfield.se/isubtitle/on_iphone_ipod.html

+1

Demo jest przeznaczone dla wbudowanego odtwarzacza, a nie dla kodu MPMoviePlayerController. –

+0

To mogło się zmienić, ale w iOS 6, jeśli aplikacja wyświetla wideo na pełnym/szerokim ekranie, przycisk CC pojawia się tam również. Chociaż byłoby miło, gdyby CC mógł być włączony przez samą aplikację. –

Powiązane problemy