android - 如何在 YouTubePlayer 中显示/隐藏字幕
问题描述
我在我的 android 应用程序中使用“YouTubePlayerFragment”。根据我们的要求,我需要使用“CHROMELESS”播放器样式并使用自定义控制器。有没有办法以编程方式显示/隐藏字幕?即使同步一个 str 文件也会很棒。
布局
<com.android.ui.widget.TouchEventLinearLayout
android:id="@+id/youtubeFragmentLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true">
<fragment
android:id="@+id/youtubeFragment"
android:name="com.google.android.youtube.player.YouTubePlayerFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.android.ui.widget.TouchEventLinearLayout>
播放器初始化:
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider,
YouTubePlayer player, boolean wasRestored) {
youTubePlayer = player;
youTubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.CHROMELESS);
youTubePlayer.setFullscreenControlFlags(YouTubePlayer.FULLSCREEN_FLAG_CONTROL_SYSTEM_UI);
setPlayPause(isPlaying);
initialProgressHandler();
resumePoint = calculateResumePoint();
if (!wasRestored) {
if (isPlaying)
youTubePlayer.loadVideo(mItem.getVideoId(), resumePoint);
else
youTubePlayer.cueVideo(mItem.getVideoId(), resumePoint);
}
}
解决方案
对于到这里来解决相同问题的其他人,我最终解析了 srt 文件并添加了一个包含 textview 的弹出窗口来显示标题。
问题在于同步文本和视频,因为 youtube 播放器计时器会随机报告位置。您可以通过添加另一个计时器来修复它。
推荐阅读
- swift - 如果标签是有条件的,NavigationLink 不起作用
- javascript - Laravel 路由器返回错误 500 internal-server-error
- node.js - 处理 NodeJS 控制器中的多个错误检查
- excel - 在文件名中使用日期变量
- c - 在整数的单循环链表中插入第 n 个位置的问题
- python - 计算熊猫系列中的特定值
- ios - Alamofire 和 Digest-Auth
- user-interface - Flutter tabBar 如何从顶部变为底部
- css - CSS在flexbox容器中用边距包装项目,固定高度溢出到顶部
- oracle-apex - 如何将报告直接发送到打印机?