如何从 chromecast 获取播放和停止事件回调 android

How to get play and stop event callback from chromecast android

我想在 chromecast 音频更改播放模式时获取回调事件并执行某些功能(play/stop)

如何将 play/stop 事件发送到应用程序,以便我处理该事件。

请检查我已实现的以下逻辑。

 private void setupCastListener() {
        mSessionManagerListener = new SessionManagerListener<CastSession>() {

            @Override
            public void onSessionEnded(CastSession session, int error) {
                onApplicationDisconnected();
            }

            @Override
            public void onSessionResumed(CastSession session, boolean wasSuspended) {
                onApplicationConnected(session);
            }

            @Override
            public void onSessionResumeFailed(CastSession session, int error) {
                onApplicationDisconnected();
            }

            @Override
            public void onSessionStarted(CastSession session, String sessionId) {
                onApplicationConnected(session);
            }

            @Override
            public void onSessionStartFailed(CastSession session, int error) {
                onApplicationDisconnected();
            }

            @Override
            public void onSessionStarting(CastSession session) {
            }

            @Override
            public void onSessionEnding(CastSession session) {
            }

            @Override
            public void onSessionResuming(CastSession session, String sessionId) {

                if(mCastSession!=null && isChromeCastConnected){
                  try {
                      if (session.isMute()) {
                          mStopPlayButton.setImageResource(R.drawable.ic_play);
                          isChromeCastPlay = false;
                          //mCastSession.setMute(!mCastSession.isMute());
                      } else {
                          mStopPlayButton.setImageResource(R.drawable.ic_stop);
                          isChromeCastPlay = true;
                          //mCastSession.setMute(!mCastSession.isMute());
                      }
                  } catch (Exception e) {
                      e.printStackTrace();
                  }
              }
            }

            @Override
            public void onSessionSuspended(CastSession session, int reason) {
            }
        };
    }

请告诉我。谢谢

您需要在那里阅读这个 documentation, and focus on RemoteMediaClient and the Listener 界面。当播放状态发生变化时,回调 onStatusUpdated() 将被调用。上面第一个 link 上提供的教程非常有用,因此请务必阅读那里的内容。

终于在MediaControlIntent下面找到了远程媒体播放和暂停模式的回调。

Remote Playback Routes

mMediaRouter = MediaRouter.getInstance(this);
mSelector = new MediaRouteSelector.Builder()
            .addControlCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
            .build();