【发布时间】: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)) 不会返回想要的结果。我很困惑。
- 该行不应该返回一些布尔值吗?它如何启用后台播放?使用调试器,提到“如果”成功,它会停止播放器。不太清楚发生了什么以及如何发生,所以也许有人可以解释一下。
-
requestVisibleBehind() 已被@deprecated,onVisibleBehindCanceled() 也是如此。有其他选择吗?当我试图研究这些函数的含义时,我也很惊讶自己发现(requestVisibleBehind() 也是如此。
public void onVisibleBehindCanceled() { throw new RuntimeException("Stub!"); }
在某一时刻,我很确定后台播放结果来自其他操作,但是当我注释掉前面提到的代码片段时,我没有得到想要的结果(如果我不评论它,我会得到) .
【问题讨论】:
-
如果您的代码按照您的实际需要运行
-
如果您注释掉
if (! requestVisibleBehind(true))及其关联的右大括号,那么stopPlayback()行将被调用(停止播放)FWIW... -
此链接可能对您有帮助:corochann.com/…
标签: android android-tv