Android如何为Media Player添加字幕

时间:2017-09-17 17:52:54

标签: android android-mediaplayer subtitle

我知道在Android中存在制作视频\音频播放器的特殊课程 - MediaPlayer

是否有任何内置方法可以在播放视频时添加字幕?

我查看过文档,但没有找到字幕方法。

1 个答案:

答案 0 :(得分:1)

是的,有一种方法可以在视频播放器addTimedTextSource

中添加字幕
  • 示例
try {
    mediaPlayer.addTimedTextSource(subTitleSrc, MediaPlayer.MEDIA_MIMETYPE_TEXT_SUBRIP);
} catch (IOException e) {
    e.printStackTrace();
}


int textTrackIndex = findTrackIndexFor(
        mediaPlayer.getTrackInfo());
Log.i("Subtitle Track index : ", "After add :: " + textTrackIndex);

if (textTrackIndex >= 0) {
    mediaPlayer.selectTrack(textTrackIndex);
} else {
    Log.w("test", "Cannot find text track!");
}

mediaPlayer.setOnTimedTextListener(new MediaPlayer.OnTimedTextListener() {
    @Override
    public void onTimedText(final MediaPlayer mediaPlayer, final TimedText timedText) {
        if (timedText != null) {
            Log.d("test", "subtitle: " + timedText.getText());
            tv_subtitle.setText(timedText.getText());
        }
    }
});    

此处mediaPlayer是android-MediaPlayer类的对象,是字幕文件的subTitleSrc路径。