【问题标题】:Exit Full Screen Video Mode on Back Press后按退出全屏视频模式
【发布时间】:2016-03-11 05:59:43
【问题描述】:

我刚开始使用 Google 提供的这个 GMF 示例。

我想知道如何通过点击后退按钮退出全屏视频模式,我尝试使用以下代码,但没有成功,

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();
    }
}

【问题讨论】:

  • 您正面临什么问题。 ?

标签: java android android-video-player onbackpressed


【解决方案1】:

假设您已经围绕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.

由于两个 SimpleVideoPlayers 都被声明为私有,因此您无法访问它们。以下是解决此问题的 2 个解决方案:

解决方案 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  
     }
 }

如果您没有围绕演示应用程序构建它,您需要调用您的视频播放器(很可能是SimpleVideoPlayersetFullscreen(false)

【讨论】:

猜你喜欢
  • 2016-08-09
  • 2013-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-21
  • 2019-07-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多