java - 按下后退出全屏视频模式

标签 java android android-video-player onbackpressed

我刚刚开始使用这个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类中为adPlayercontentPlayer创建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/

相关文章:

android - 在 Android 中使用 .amp 扩展名访问 mpeg-4 编码的 RTSP 直播流(Axis 服务器)

java - 测试后运行 Dataprovider

java - 比较两个字符串并突出显示发现的不匹配之处

android - 让测试知道它可以在应用程序到达特定点后运行 - 可能是 sharedPref

Android 媒体播放器错误 (100,0)

android - 如何创建像 youtube "small screen and full screen play in android "这样的视频 View

java - 为什么 Intellij 在 pom.xml 中找不到任何 Maven 依赖项?

java - 在返回 double java的方法中返回null

android - navigator.geolocation.getCurrentPosition 在 React Native 中不起作用

java - Android项目 "error: package R does not exist "的Maven编译错误