字幕

智能视频SDK VideoCreatingSDK

  • 智能视频SDK开发者个人信息保护合规指引
  • 智能视频SDK隐私政策
  • 功能发布记录
  • 播放器SDK
    • SDK&Demo下载
    • 产品简介与下载
    • ios播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 功能列表
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Unity播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • uniapp播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 快速进阶
    • HarmonyOS NEXT
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • Andriod播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Web 播放器
      • license指引
      • 简介
      • 使用指南
      • 版本更新记录
      • 开发指南
      • 接口速查
        • 事件响应接口
        • 控制接口
  • 图片加载SDK
    • SDK&Demo下载
    • SDK集成
    • 快速开始
    • 版本更新记录
    • 接口速查
    • 产品简介
    • 快速进阶
  • 短视频SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • 能力限制
      • DEMO体验
      • SDK下载
    • 使用指南
      • License申请
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 录制
        • 编辑
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • IOS版本开发接入文档
      • 视频指导
        • 视频指南
      • Android开发说明
        • 录制
        • Android版本开发接入文档
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • 概述
  • 移动直播SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • demo体验
      • SDK下载
    • 使用指南
      • 接入教程
      • License申请
      • License续费
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 互动直播
        • 特效直播
        • 拉流
        • IOS接入概述
        • 超低延迟直播
        • 直播推流
      • Android开发说明
        • 超低延时直播
        • 互动直播
        • 普通直播
        • 特效直播
        • 拉流
        • Android接入概述
        • 推流参数配置
所有文档
menu
没有找到结果,请重新输入

智能视频SDK VideoCreatingSDK

  • 智能视频SDK开发者个人信息保护合规指引
  • 智能视频SDK隐私政策
  • 功能发布记录
  • 播放器SDK
    • SDK&Demo下载
    • 产品简介与下载
    • ios播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 功能列表
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Unity播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • uniapp播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 快速进阶
    • HarmonyOS NEXT
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • Andriod播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Web 播放器
      • license指引
      • 简介
      • 使用指南
      • 版本更新记录
      • 开发指南
      • 接口速查
        • 事件响应接口
        • 控制接口
  • 图片加载SDK
    • SDK&Demo下载
    • SDK集成
    • 快速开始
    • 版本更新记录
    • 接口速查
    • 产品简介
    • 快速进阶
  • 短视频SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • 能力限制
      • DEMO体验
      • SDK下载
    • 使用指南
      • License申请
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 录制
        • 编辑
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • IOS版本开发接入文档
      • 视频指导
        • 视频指南
      • Android开发说明
        • 录制
        • Android版本开发接入文档
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • 概述
  • 移动直播SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • demo体验
      • SDK下载
    • 使用指南
      • 接入教程
      • License申请
      • License续费
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 互动直播
        • 特效直播
        • 拉流
        • IOS接入概述
        • 超低延迟直播
        • 直播推流
      • Android开发说明
        • 超低延时直播
        • 互动直播
        • 普通直播
        • 特效直播
        • 拉流
        • Android接入概述
        • 推流参数配置
  • 文档中心
  • arrow
  • 智能视频SDKVideoCreatingSDK
  • arrow
  • 短视频SDK
  • arrow
  • 开发指南
  • arrow
  • Android开发说明
  • arrow
  • 字幕
本页目录
  • 创建字幕控制器
  • 设置字幕画面位置

字幕

更新时间:2025-08-22

创建字幕控制器

  • 创建字幕控制器,使用字幕相关功能,需要创建字幕轨并添加到媒体轨道中心,并创建一个字幕片段,配合字幕UI逻辑使用,详见智能小视频源码,涉及组件BDHKVlogSubtitlesView(字幕位置),BDMVSubtitleInputAccessoryView(字幕输入框),BDMVInputEventBottomBar(字幕确认框)
  • 代码示例如下:
Plain Text
1		//创建字幕控制器
2		        mUgcSubtitleEditController = new UgcSubtitleEditController(this, mUgcPreViewFrameLayout, mVideoView);
3        mUgcSubtitleEditController.setUgcVideoPreviewActivity(this);
4        mUgcSubtitleEditController.setSubtitleEditControllerListener(
5                new UgcSubtitleEditController.SubtitleEditControllerListener() {
6                    @Override
7                    public List<MultiMediaData> getDataList() {
8                        return mDataSourceList;
9                    }
10
11                    @Override
12                    public void updateSubtitleList(List<SubTitleUnit> subTitleUnits) {
13                        if (mVlogEditManager != null) {
14                            mVlogEditManager.setSubtitle(subTitleUnits);
15                        }
16                        if (mAEffectProcessor != null) {
17                            mAEffectProcessor.changeEffect(mVlogEditManager.getShaderConfigMap(),
18                                    mVlogEditManager.getUpdateMediaTracks());
19                        }
20                        if (mUgcSubtitleEditController != null) {
21                            mUgcSubtitleEditController.changeSubtitleIcon(!ListUtils.isEmpty(subTitleUnits));
22                        }
23                    }
24
25                    @Override
26                    public String getThemeId() {
27                        return "";
28                    }
29
30                    @Override
31                    public void updateSubtitleConfig(SubTitleConfig subTitleConfig) {
32                        if (mVlogEditManager != null) {
33                            mVlogEditManager.setSubtitleConfig(subTitleConfig);
34                        }
35
36                        VideoDraftBean videoDraftBeanDb = getVideoDraftBeanDb();
37                        if (videoDraftBeanDb != null) {
38                            videoDraftBeanDb.setVideoSubtitleConfig(SubTitleConfig.beanToJson(subTitleConfig));
39                            CurrentVideoBeanManager.updateVideoDraftBean(videoDraftBeanDb);
40                        }
41                    }
42
43                    @Override
44                    public void setIsNeedPauseWhenEdit(boolean isNeedPauseWhenEdit) {
45                        mIsNeedPauseWhenEdit = isNeedPauseWhenEdit;
46                    }
47                    
48                    @Override
49                    public void saveSubtitleDraft(List<SubTitleUnit> subTitleUnits) {
50                        VideoDraftBean videoDraftBeanDb = getVideoDraftBeanDb();
51                        if (videoDraftBeanDb != null) {
52                            videoDraftBeanDb.setVideoSubtitleData(SubTitleUnit.arrayToJson(subTitleUnits));
53                            CurrentVideoBeanManager.updateVideoDraftBean(videoDraftBeanDb);
54                        }
55                    }
56
57                    @Override
58                    public void updateIsPauseByUser(boolean isPauseByUser) {
59                        mIsPausePlayByUser = isPauseByUser;
60                        if (mIsPausePlayByUser) {
61                            if (mVlogEditManager != null) {
62                                mVlogEditManager.pause();
63                            }
64                            if (mPreviewMusicPlayer != null) {
65                                mPreviewMusicPlayer.onPause();
66                            }
67                        }
68                    }
69                });
70               

设置字幕画面位置

  • 设置字幕画面位置,可以调整字幕轨道上某个字幕的显示位置
  • 代码示例如下:
Plain Text
1private void inflateDragSubtitleLayout() {
2        if (mDragSubtitleViewStub == null) {
3            return;
4        }
5        mDragSubtitleLayout = (DragSubtitleLayout) mDragSubtitleViewStub.inflate();
6        mDragSubtitleLayout.setOnDragItemClickListener(this);
7        mDragSubtitleViewStub = null;
8        if (mSubTitleConfig != null) {
9            mDragSubtitleLayout.setSubtitleConfig(mSubTitleConfig);
10        }
11        mDragSubtitleLayout.setOnDragItemMovedListener(new DragSubtitleLayout.OnDragItemMovedListener() {
12            @Override
13            public void onDragItemMoved() {
14                mIsChangeSubtile = true;
15            }
16        });
17        mDragSubtitleLayout.setOnCancelFocusManuallyListener(new DragSubtitleLayout.OnCancelFocusManuallyListener() {
18            @Override
19            public void onCancelFocusManually(SubTitleUnit subTitleUnit) {
20                if (mSubtitleEditLayout != null && mSubtitleEditLayout.getVideoShaft() != null
21                        && mIPlayerDataSource != null) {
22                    mSubtitleEditLayout.getVideoShaft().clearSelectState();
23                }
24            }
25        });

上一篇
Android版本开发接入文档
下一篇
转场