android - RemotePlaybackClient,stop() 没有得到回调

标签 android google-cast chromecast

我正在尝试写一个 RemotePlaybackClient示例应用程序,部分原因是 the one published by Google crashes aapt .

我可以得到 RemotePlaybackClient支持play() ,并在 Chromecast 上播放视频。

但是,当我调用 stop() 时, 来停止视频的播放,而 Chromecast 确实会停止播放(显示黑屏,中间有一个转换图标),SessionActionCallback我传入 stop()调用不会被 onResult() 调用:

  private void stop() {
    logToTranscript(getActivity().getString(R.string.stop_requested));

    SessionActionCallback stopCB=new SessionActionCallback() {
      @Override
      public void onResult(Bundle data, String sessionId,
                           MediaSessionStatus sessionStatus) {
        logToTranscript(getActivity().getString(R.string.stopped));
        isPlaying=false;
        isPaused=false;
        getActivity().supportInvalidateOptionsMenu();
        endSession();
      }
    };

    client.stop(null, stopCB);
  }

如果我尝试 pause() 也会发生同样的事情-- SessionActionCallback传递给 pause()没有被调用。

The sample code published by Google表明应该调用这些回调,但是,我还是无法成功编译。

有谁知道在什么情况下SessionActionCallback不起作用,而 ItemActionCallbackplay() 一起使用工作吗?

更新

我已提交 issue 66996issue 67032 ,后者正是我在这里看到的问题,因为我在官方示例应用程序中遇到了同样的问题。

最佳答案

我相信所有答案都取决于您如何建立联系。 因为在谷歌代码中,代码表示您创建的客户端不会离开 session 并且不应该为空。

if (!mClient.hasSession()) {
   // ignore if no session
   return;
}

/*********其余代码将无法访问***********/

@Override
public void pause() {
    if (!mClient.hasSession()) {
        // ignore if no session
        return;
    }
    if (DEBUG) {
        Log.d(TAG, "pause");
    }
    mClient.pause(null, new SessionActionCallback() {
        @Override
        public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus) {
            logStatus("pause: succeeded", sessionId, sessionStatus, null, null);
            if (mCallback != null) {
                mCallback.onPlaylistChanged();
            }
        }
        @Override
        public void onError(String error, int code, Bundle data) {
            logError("pause: failed", error, code);
        }
    });
}

关于android - RemotePlaybackClient,stop() 没有得到回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22330988/

相关文章:

android - 在 Windows 机器上下载 android sdk 组件时出现文件未找到错误

android - Android 中 gui 元素的动态数量?

Android 按钮高度阴影不起作用

ios - Google Cast SDK 开发者控制台中的 Android TV 注册

android - Fragments 和 Activity——我应该把我的应用程序逻辑放在哪里?

timeout - Chromecast 如何确定不活动状态?

android - Google Cast - 如果我更改应用程序 ID,示例 Android 应用程序不会显示 Cast 图标

ios - Chromecast 获取音量

android - 构建 android chrome cast 视频示例时出错

chromecast - 使用 Chrome API 控制 Chromecast 音频音量