Skip to content

KSYSubtitle

xinbaicheng edited this page Jul 10, 2017 · 2 revisions

字幕

播放器支持播放内嵌与外挂文本字幕(ASS、SRT)
播放器主要负责字幕的解析及与视频的同步,字幕的渲染需要由业务方负责

版本要求

播放SDK:v2.0.1及以上
仅点播库支持文本字幕的播放,直播库不支持,点播库与直播库的区别可参考 Wiki

相关接口

  1. 添加外挂字幕
/**
 * 设置外挂字幕的路径,播放器会打开并解码外挂字幕
 * @param path 外挂字幕路径
 */
@Override
public void addTimedTextSource(String path)
  1. 内嵌字幕

视频内嵌有ASS、SRT文本字幕时,播放器会默认解析第一个字幕流

  1. 字幕回调监听器

一条字幕有起始展示时间点与展示时长,当某字幕需要被展示或者展示结束时都有此回调

// 字幕回调监听器的定义
IMediaPlayer {
    /**
     * 字幕监听器
     * @param IMediaPlayer 播放器
     * @param text 字幕需要展示时为字幕内容,字幕展示结束时为 空("")
     */
    interface OnTimedTextListener {
        void onTimedText(IMediaPlayer mp, String text);
    }

    // 设置文本字幕回调监听器
    void setOnTimedTextListener(OnTimedTextListener listener);
}
  1. 获取流信息

当调用接口addTimedTextSource之后,播放器会新增关于该外挂字幕的流信息,具体可参见如下代码

KSYTextureView mKsyTextureView;
// 获取当前流信息
KSYTrackInfo[] trackInfos = mKsyTextureView.getTrackInfo();

for (KSYTrackInfo info : trackInfos) {
    switch(info.getTrackType()) {
        case ITrackInfo.MEDIA_TRACK_TYPE_TIMEDTEXT:
             Log.d("KSYMediaPlayer", "内嵌字幕");
             break;
        case ITrackInfo.MEDIA_TRACK_TYPE_EXTERNAL_TIMEDTEXT:
             Log.d("KSYMediaPlayer", "外挂字幕");
             break;
    }
}
  1. 其他相关接口
/**
 *
 */
public void selectTrack(int track)
public void deselectTrack(int track)
Clone this wiki locally