You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Video.js:如何仅在自定义TextTrackDisplay显示字幕,隐藏视频上方字幕

Video.js 自定义字幕显示问题解决

问题描述

我已经实现了在视频播放区域外的自定义DOM元素中显示Video.js字幕,但目前无法隐藏视频上方同步显示的默认字幕。字幕选项(addRemoteTextTrack(options))和textTrackSettings.setValues()中的设置会同时影响视频内与自定义字幕,请问如何仅在自定义TextTrackDisplay元素中展示字幕,同时禁用视频上方的字幕?

相关代码片段:

let captionOption = {
    kind: 'captions',
    srclang: 'en',
    label: 'English',
    src: subURL,
    mode: 'showing',
};
connectTextTracks = (player) => {
    const TextTrackDisplay = videojs.getComponent('TextTrackDisplay');
    const textTrackDisplay = new TextTrackDisplay(player);
    subtitleDiv.appendChild(textTrackDisplay.el());
}
player.ready(function () {
    player.addRemoteTextTrack(captionOption);
    const tracks = player.remoteTextTracks();
    console.log(tracks.length); // 存在字幕时输出大于0的数值

    var settings = this.textTrackSettings;

    settings.setValues({
        backgroundColor: '#000',
        backgroundOpacity: '1',
        edgeStyle: 'uniform',
    });
    settings.updateDisplay();

    connectTextTracks(player);
});

Video.js - 自定义TextTrackDisplay元素

解决方案

核心思路是隐藏Video.js默认渲染在视频内的TextTrackDisplay组件,只保留自定义的外部字幕显示元素,具体操作如下:

在player.ready回调函数中,添加隐藏默认字幕容器的代码,最终整合后的代码如下:

player.ready(function () {
    player.addRemoteTextTrack(captionOption);
    const tracks = player.remoteTextTracks();
    console.log(tracks.length); // 存在字幕时输出大于0的数值

    var settings = this.textTrackSettings;

    settings.setValues({
        backgroundColor: '#000',
        backgroundOpacity: '1',
        edgeStyle: 'uniform',
    });
    settings.updateDisplay();

    connectTextTracks(player);

    // 隐藏默认的视频内字幕显示
    const defaultCaptionDisplay = player.getComponent('TextTrackDisplay');
    if (defaultCaptionDisplay) {
      defaultCaptionDisplay.el().style.display = 'none';
    }
});

设置完成后,视频内的默认字幕会被隐藏,只有挂载到subtitleDiv中的自定义字幕元素会正常显示,同时字幕样式设置仍会同步应用到自定义字幕上。

内容的提问来源于stack exchange,提问作者Burnhill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 22:35:36