Ищите рабочий пример addTimedTextSource для добавления субтитров к видео из файла .srt в Android 4.1

Я пытался использовать файл .srt для синхронизированного источника текста (доступно только в Android 4.1+http://developer.android.com/about/versions/android-4.1.html#Multimedia) Первая проблема связана с получением дескриптора файла для файла .srt (в папке assets, как еще вы могли бы связать его в вашем приложении?). Файл сжимается автоматически, поэтому вы даже не сможете его увидеть, не изменив настройки компиляции или не выполнив пользовательскую сборку. Самым простым решением было переименовать файл .srt в .jpg, чтобы он не сжимался и метод openFD все еще работал. Я сейчас добавляю TimedTextSource с:

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

Теперь файл загружается правильно и, используя myMP.getTrackInfo (), чтобы получить список дорожек, может видеть, что после добавления источника синхронизированного текста, шестая дорожка имеет тип «3», который является типом синхронизированных текстовых дорожек. Я использовал selectTrack, чтобы выбрать этот трек, как сказано в документации Google, но после этого в моем TimedTextListener не было никаких подписей:

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

Запускается только один раз (у меня есть 20 временных событий в файле), но текстовый параметр всегда равен нулю. Я выполнил поиск и не могу найти ни одного примера работающего кода с использованием timeText, и он не отображается ни в одном из примеров проектов. Буквально нет документации, кроме api docs от Google, но, насколько я могу судить, никто не опубликовал Рабочий пример этого пока. Я тестирую это на Google Nexus обновлен до Android 4.2

Ответы на вопрос(3)

Ваш ответ на вопрос