我刚刚开始使用这个GMF Google 提供的示例。
我想知道如何通过点击后退按钮退出全屏视频模式,我尝试使用下面的代码,但没有取得任何成功,
here你可以看到MainActivity.java的实际代码
boolean isFullScreen = false; // globally declared
@Override
public void onGoToFullscreen() {
isFullScreen = true;
videoListView.setVisibility(View.INVISIBLE);
}
@Override
public void onReturnFromFullscreen() {
videoListView.setVisibility(View.VISIBLE);
}
@Override
public void onBackPressed() {
if(isFullScreen) {
onReturnFromFullscreen();
}
else {
super.onBackPressed();
}
}
最佳答案
假设您已围绕 Demo 构建应用程序,在演示应用中,com.google.googlemediaframeworkdemo.demo.adplayer
包中有 ImaPlayer
类,其中包含两个 SimpleVideoPlayer
引用,并且顾名思义,一种是显示添加,一种是显示内容。
/** * Plays the ad. */ private SimpleVideoPlayer adPlayer; /** * Plays the content (i.e. the actual video). */ private SimpleVideoPlayer contentPlayer;
要退出全屏,您需要在 SimpleVideoPlayer 上调用 setFullscreen(false)
public void setFullscreen(boolean shouldBeFullscreen) Make the player enter or leave fullscreen mode. Parameters: shouldBeFullscreen - If true, the player is put into fullscreen mode. If false, the player leaves fullscreen mode.
由于两个 SimpleVideoPlayer 都被声明为私有(private),因此您无法访问它们。这里有两个解决方案来解决这个问题:
解决方案 1:
在ImaPlayer
类中为adPlayer
和contentPlayer
创建getter
public SimpleVideoPlayer getAdPlayer(){
return this.adPlayer;
}
public SimpleVideoPlayer getContentPlayer(){
return this.ContentPlayer;
}
在处理后退键的 MainActivity
中对此进行修改
@Override
public void onBackPressed() {
if(isFullScreen) {
imaPlayer.getAdPlayer().setFullscreen(false);
imaPlayer.getContentPlayer().setFullscreen(false);
// after this calls you will see that your callback method onReturnFromFullscreen() will be called
}
else {
super.onBackPressed();
}
}
解决方案 2:
在ImaPlayer
类中添加以下代码:
public void exitFullscreen(){
if (adPlayer != null) {
adPlayer.setFullscreen(false);
}
contentPlayer.setFullscreen(false);
//again after this calls you will see that your callback method onReturnFromFullscreen() will be called
}
}
如果您尚未围绕演示应用程序构建它,则需要调用视频播放器(最有可能是 SimpleVideoPlayer
)setFullscreen(false)
关于java - 按下后退出全屏视频模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35933324/