Suchen Sie nach einem funktionierenden Beispiel für addTimedTextSource zum Hinzufügen von Untertiteln zu einem Video aus einer .srt-Datei in Android 4.1

Ich habe versucht, eine .srt-Datei für eine zeitgesteuerte Textquelle zu verwenden (nur in Android 4.1+ verfügbar)http://developer.android.com/about/versions/android-4.1.html#Multimedia). Das erste Problem hat mit dem Abrufen eines Dateideskriptors für die .srt-Datei zu tun (wie würden Sie ihn in Ihrer App im Assets-Ordner bündeln?). Die Datei wird automatisch komprimiert, sodass Sie sie nicht einmal sehen können, ohne die Kompilierungseinstellungen zu ändern oder einen benutzerdefinierten Build durchzuführen. Die einfachste Lösung bestand darin, die .srt-Datei in .jpg umzubenennen, damit sie nicht komprimiert wird und die openFD-Methode weiterhin funktioniert. Ich füge jetzt die TimedTextSource hinzu mit:

_myMP.addTimedTextSource(getAssets().openFd("captions.jpg").getFileDescriptor(),   MediaPlayer.MEDIA_MIMETYPE_TEXT_SUBRIP);

Die Datei wird jetzt korrekt geladen und verwendet myMP.getTrackInfo (), um eine Liste der Spuren abzurufen. Nach dem Hinzufügen der zeitgesteuerten Textquelle hat die sechste Spur den Typ "3", den zeitgesteuerten Textspurtyp. Ich habe selectTrack verwendet, um diesen Track auszuwählen, wie in der Google-Dokumentation angegeben. Danach werden jedoch keine Untertitel mehr in meinem TimedTextListener angezeigt:

 _myMP.setOnTimedTextListener(new OnTimedTextListener(){
        @Override
        public void onTimedText(MediaPlayer mp, TimedText text) {
                if (text!=null)
                   Log.d("TimedText", text.getText());  
            }       
        });

Wird nur einmal ausgelöst (ich habe 20 zeitgesteuerte Textereignisse in der Datei), aber der Textparameter ist immer null. Ich habe gesucht und kann kein einziges funktionierendes Beispiel für die Verwendung von timeText finden. Es wird in keinem Beispielprojekt angezeigt. Es gibt buchstäblich keine andere Dokumentation als die API-Dokumente von Google funktionierendes Beispiel dafür noch. Ich teste dies auf einem auf Android 4.2 aktualisierten Google Nexus

Antworten auf die Frage(3)

Ihre Antwort auf die Frage