首页 > 解决方案 > 如何在 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);
        }
    }

标签: androidandroid-youtube-api

解决方案


对于到这里来解决相同问题的其他人,我最终解析了 srt 文件并添加了一个包含 textview 的弹出窗口来显示标题。

问题在于同步文本和视频,因为 youtube 播放器计时器会随机报告位置。您可以通过添加另一个计时器来修复它。


推荐阅读