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

Android超大字幕设置下ExoPlayer竖屏字幕重叠问题求助

解决ExoPlayer竖屏字幕重叠问题(系统超大字幕设置下)

针对系统设置超大字幕导致ExoPlayer竖屏字幕重叠的问题,可通过以下几种方案解决:

  • 自定义字幕样式,覆盖系统设置
    ExoPlayer支持自定义字幕渲染参数,强制指定合适的字体大小,不受系统无障碍设置影响。示例代码如下:
// 获取PlayerView中的字幕视图
val subtitleView = playerView.findViewById<SubtitleView>(R.id.exo_subtitles)
// 创建基础样式并修改字体大小(以屏幕高度的百分比为单位)
val customStyle = CaptionStyleCompat.createFromAttributes(context, null, android.R.attr.captionStyle)
subtitleView.setStyle(customStyle.setFixedTextSize(TextSize.Type.PERCENT, 5f))

也可直接在布局文件中配置:

<com.google.android.exoplayer2.ui.PlayerView
    android:id="@+id/player_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.exoplayer2.ui.SubtitleView
        android:id="@+id/exo_subtitles"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:fixedTextSize="5%"/>
</com.google.android.exoplayer2.ui.PlayerView>
  • 调整字幕容器的布局与排版参数
    竖屏屏幕宽度有限,可通过增加行间距、内边距优化字幕排版,避免重叠:
subtitleView.setLineSpacingMultiplier(1.2f) // 提升行间距,减少行重叠
subtitleView.setPadding(16, 16, 16, 32) // 增加底部内边距,避免字幕贴近屏幕边缘挤压

同时确认布局中PlayerView的字幕容器未被设置固定高度,需保持wrap_content以自适应字幕内容。

  • 根据屏幕方向动态调整字幕参数
    监听屏幕方向变化,在竖屏时自动缩小字幕尺寸,横屏时恢复适配:
override fun onConfigurationChanged(newConfig: Configuration) {
    super.onConfigurationChanged(newConfig)
    val subtitleView = playerView.findViewById<SubtitleView>(R.id.exo_subtitles)
    when(newConfig.orientation) {
        Configuration.ORIENTATION_PORTRAIT -> {
            subtitleView.setFixedTextSize(TextSize.Type.PERCENT, 4.5f)
        }
        Configuration.ORIENTATION_LANDSCAPE -> {
            subtitleView.setFixedTextSize(TextSize.Type.PERCENT, 6f)
        }
    }
}

需在对应Activity的Manifest配置中添加android:configChanges="orientation|screenSize",避免屏幕旋转时Activity重建。

  • 检查字幕文件格式规范
    部分非标准字幕文件(如SRT)可能存在换行标记错误,导致渲染时换行异常。可使用字幕编辑工具重新生成规范的字幕文件,确保换行符、时间轴标记符合标准格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:08:30