切换到肖像时全屏熄灭

时间:2014-08-21 17:28:22

标签: android android-youtube-api

我正在为Android应用程序使用Youtube API,我正在寻找一种方法来避免在横向模式之间切换时退出全屏模式。这意味着,我不想在将手机切换到纵向模式时退出全屏模式。我需要视频始终全屏显示。

有没有办法让它成为现实?

我目前的全屏代码是:

@Override
    public void onInitializationSuccess(YouTubePlayer.Provider provider,
            YouTubePlayer player, boolean wasRestored) {
        if (!wasRestored) {
            Intent intent = getIntent();
            String Video_Link = intent.getStringExtra("youtube_id");
            player.cueVideo(Video_Link);
            player.setFullscreen(true);
        }
    }

提前多多感谢。

2 个答案:

答案 0 :(得分:5)

在方向更改时,将调用onCreate方法。您可以尝试在Manifest文件中的相关活动中添加此行,以防止onCreate调用。

    android:configChanges="orientation|keyboardHidden|screenSize|layoutDirection"

它可能会为你保持youtube的全屏状态...

否则你可能会尝试覆盖onconfigchange方法:

@Override //reconfigure display properties on screen rotation
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

            //Checks the orientation of the screen
            if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) 
                {
                // handle change here
                } 
            else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
                {
                // or here
                }
    }

答案 1 :(得分:0)

在我的情况下,活动需要纵向,但视频始终是横向的。

正如Will Thomson上面提到的,你会想要将它添加到你的清单中:

import os
import csv

path = "./search_files"
folder = os.listdir(path)

search_dict = csv.DictReader(open("column_list.csv"))

for files in folder:
    files = os.path.join(path, files)
    file = open(files, "r")
    sql = file.readlines()

    sql = [x.strip() for x in sql] # Remove \n

    hit_count = 0

    for i in sql:
        i = i.upper() # Make SQL code UPPERCASE
        print str(hit_count) + ": " + i # i has values here
        hit_count = hit_count + 1

        for row in search_dict:
            print str(hit_count) + ": " + i # i is blank here
            hit_count = hit_count + 1

            if row['TABLE_NAME'] in i or row['COLUMN_NAME'] in i:
                print row['TABLE_NAME'] + " | " + row['COLUMN_NAME']

这可能不是理想的做事方式,而是做我需要的事情 您可以在初始化后设置全屏监听器:

android:configChanges="orientation|keyboardHidden|screenSize"

然后在回调中,您可以手动设置方向:

@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {

    this.player = player;
    player.setOnFullscreenListener(this);

    if(!wasRestored) {
        player.cueVideo(Constants.INTO_YOUTUBE_VIDEO_ID);
    }
}

当用户点按播放时,您可以使用@Override public void onFullscreen(boolean fullscreen) { videoIsFullScreen = fullscreen; if(fullscreen) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } else { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } } 。当用户点击后退按钮时,您可以退出全屏或完成活动。

player.setFullscreen(true)

这里还有另一个类似的答案https://stackoverflow.com/a/39494759/1159930,但是在第一个评论后,全屏纵向模式播放了视频而不是风景。