RemotePlaybackClient,stop()没有得到回调

Com*_*are 48 android google-cast chromecast

我试图编写一个RemotePlaybackClient示例应用程序,部分原因是Google发布的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);
  }
Run Code Online (Sandbox Code Playgroud)

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

Google发布的示例代码显示应该调用这些回调,但是,我再也无法成功编译.

有谁知道在什么情况下SessionActionCallback不会起作用,而ItemActionCallback使用它play() 起作用?

UPDATE

我已经提交了问题66996问题67032,后者特别是我在这里看到的问题,因为我遇到了与官方示例应用程序相同的问题.

Dee*_*war 1

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

if (!mClient.hasSession()) {
   // ignore if no session
   return;
}
Run Code Online (Sandbox Code Playgroud)

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

@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);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)