我正在为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);
}
}
提前多多感谢。
答案 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,但是在第一个评论后,全屏纵向模式播放了视频而不是风景。