【问题标题】:Enabling background playback on Android TV在 Android TV 上启用后台播放
【发布时间】:2017-12-21 18:04:13
【问题描述】:

当用户决定在电影期间按“主页”时,我想在后台继续播放。

我按照这里的指南操作:https://developer.android.com/training/tv/playback/options.html

并编写了以下代码(有效):

@Override
public void onPause() {
    super.onPause();
    if (mVideoView.isPlaying())
    {
        // Argument equals true to notify the system that the activity
        // wishes to be visible behind other translucent activities
        if (! requestVisibleBehind(true)) {
            // App-specific method to stop playback and release resources
            // because call to requestVisibleBehind(true) failed
            stopPlayback();
        }
    } else {
        // Argument equals false because the activity is not playing
        requestVisibleBehind(false);
    }
}

@Override
public void onVisibleBehindCanceled() {
  // App-specific method to stop playback and release resources
  stopPlayback();
  super.onVisibleBehindCanceled();
}

我有几个问题。 我发现注释掉行 if (! requestVisibleBehind(true)) 不会返回想要的结果。我很困惑。

  1. 该行不应该返回一些布尔值吗?它如何启用后台播放?使用调试器,提到“如果”成功,它会停止播放器。不太清楚发生了什么以及如何发生,所以也许有人可以解释一下。
  2. requestVisibleBehind() 已被@deprecated,onVisibleBehindCanceled() 也是如此。有其他选择吗?当我试图研究这些函数的含义时,我也很惊讶自己发现(requestVisibleBehind() 也是如此。

    public void onVisibleBehindCanceled() 
    {
        throw new RuntimeException("Stub!");
    }
    

在某一时刻,我很确定后台播放结果来自其他操作,但是当我注释掉前面提到的代码片段时,我没有得到想要的结果(如果我不评论它,我会得到) .

【问题讨论】:

  • 如果您的代码按照您的实际需要运行
  • 如果您注释掉if (! requestVisibleBehind(true)) 及其关联的右大括号,那么stopPlayback() 行将被调用(停止播放)FWIW...
  • 此链接可能对您有帮助:corochann.com/…

标签: android android-tv


【解决方案1】:

我不知道我是否正确理解您的要求。根据谷歌requestVisibleBehind(true) 向安卓操作系统提出的请求,如果进入后台,这个活动应该继续播放,它返回的布尔值是你是否可以指望它是否可以继续播放(由操作系统)。 关于onVisibleBehindCanceled(),它在应用程序由用户或操作系统完成时或requestVisibleBehind 返回 false 时调用,本质上它的作用是给你 500 毫秒来处理你的应用程序使用的所有资源,在这 500 毫秒之后操作系统将破坏您的活动以释放这些资源。 所以总而言之,这些确实是负责您的应用程序继续在后台播放的人。 关于弃用,请记住 android O 带有使用 PIP 的能力,所以也许这就是这个变化的原因。

希望对你有帮助

【讨论】:

  • 谢谢,在 Android TV 上您可能不想使用 PIP,但仍会在后台显示完整视频。
猜你喜欢
  • 2020-05-28
  • 1970-01-01
  • 2020-06-29
  • 1970-01-01
  • 2022-07-19
  • 1970-01-01
  • 2015-03-09
  • 2020-07-25
  • 2017-10-12
相关资源
最近更新 更多