在Android TV上启用后台播放

前端之家收集整理的这篇文章主要介绍了在Android TV上启用后台播放前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
用户决定在电影期间按“主页”时,我想在后台继续播放.

我按照指南进行了操作:https://developer.android.com/training/tv/playback/options.html

并编写了以下代码(WHICH WORKS):

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

我几乎没有问题.
如果(!requestVisibleBehind(true))没有返回想要的结果,我发现注释掉行.我很困惑.

>该行不应该返回一些布尔值吗?如何启用后台播放?使用调试器,提到“if”成功并停止播放器.不确定发生了什么以及如何发生,所以也许有人可以解释我.
> requestVisibleBehind()是@deprecated,因此是onVisibleBehindCanceled().还有其他选择吗?当我试着研究这些函数的作用时,我发现时也会感到惊讶(requestVisibleBehind()同样如此.

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

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

解决方法

我不知道我是否理解你的要求.根据google的requestVisibleBehind(true)请求安卓操作系统,如果要进入后台,这个活动应该继续播放,它返回的布尔值是你是否可以指望它可以继续播放或者不是(这取决于操作系统).
关于onVisibleBehindCanceled(),当应用程序由用户或操作系统完成或者requestVisibleBehind返回false时调用它,实际上它的作用是让你500ms处理应用程序使用的所有资源,在操作系统将破坏500ms之后您的活动是为了释放这些资源.
总而言之,这些确实是负责您的应用程序继续在后台播放的人.
关于弃用,请记住android O具有使用PIP的能力,所以也许这就是这种改变的原因.

希望它有所帮助

原文链接:https://www.f2er.com/android/314432.html

猜你在找的Android相关文章