以编程方式在YouTube API V3上全屏退出YoutubePlayer

时间:2016-01-02 08:24:34

标签: android youtube android-youtube-api android-fullscreen

这个问题基本上解释了自己。

我试过了player.setFullscreen(false);

除了在OnFullscreenListener

中调用OnFullscreen方法之外什么都不做

https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayer#setFullscreen(boolean)

我认为他们没有实现一种方法让你在没有用户交互的情况下关闭它,否则它会很明显。 (只是确定)

如果您想知道我为什么需要它,那是因为我想在用户按下后退按钮时退出全屏播放器。另一个问题是我禁用了横向,因此当你返回肖像时它不会自动切换到普通视图。

也许我可以以编程方式制作它,所以我似乎转向风景,但实际上我不是,只是为了欺骗玩家?

任何解决方案或想法都受到赞赏。感谢。

以下是我的活动的一些相关内容:

Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
    if (groupPosition == 2) {
        String videoId = episodeList.get(childPosition).getYoutubeId();
        if (this.currentVideoId == null) {
            currentVideoId = videoId;
            currentFragment = YoutubeVideoFragment.newInstance(videoId);
            getSupportFragmentManager().beginTransaction().replace(R.id.youtube_video_area, currentFragment).commit();
            showVideoFragment();
        }
        else if (!this.currentVideoId.equals(videoId)) {
            cleanupRetainInstanceFragment();
            currentFragment = YoutubeVideoFragment.newInstance(videoId);
            getSupportFragmentManager().beginTransaction().replace(R.id.youtube_video_area, currentFragment).commit();
        }
        else
            toggleVideoFragment();
        return true;
    }
    else
        return false;
}


public void cleanupRetainInstanceFragment() {
    getSupportFragmentManager().beginTransaction().remove(this.currentFragment).commit();
    youtubePlayer.release();
    youtubePlayer = null;
}

@Override
public void onBackPressed() {
    if (videoFullscreen) {
        youtubePlayer.pause();
        youtubePlayer.setFullscreen(false);
    }
    else
        super.onBackPressed();
}

@Override
public void onVideoFragmentAttachSuccess(YouTubePlayer youTubePlayer) {       
    //here I get the youtubePlayer instance with a listener interface set up in my fragment. It works correctly.
    this.youtubePlayer = youTubePlayer;

}

0 个答案:

没有答案