SessionManagerListener不工作

问题描述 投票:0回答:1

我正在使用一个应用程序,我试图投射一个视频,但当我想设置一个监听器的投射会话是不工作。我在一个片段内工作,所以我无法找出问题所在。

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

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

            @Override
            public void onSessionResumed(CastSession session, boolean wasSuspended) {
                Log.d("fragment tv", "onSessionResumed");

                onApplicationConnected(session);
            }

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

            @Override
            public void onSessionStarted(CastSession session, String sessionId){                    Log.d("fragment tv", "onSessionStarted");
                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) {
            }

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

            private void onApplicationConnected(CastSession castSession) {
                Log.d("fragment tv", "connected");
                mCastSession = castSession;
                mLocation = PlaybackLocation.REMOTE;}

            private void onApplicationDisconnected() {
                Log.d("fragment tv", "disconnected");

                mLocation = PlaybackLocation.LOCAL;

            }
        };
    }
android chromecast
1个回答
0
投票

故障1 :-通常情况下,人们会忘记注册监听者在 onResume 办法

onResume(){
   mCastContext.getSessionManager()
               .addSessionManagerListener(mSessionManagerListener, CastSession.class);
}

错2 :- 有些人添加 MediaRouteButton 关于 home screen 并写 SessionManagerListener 在不同的活动中,忘记添加 MediaRouteButton 关于 scrren. 所以,很明显 SessionManagerListener 将永远不会被调用。

所以,要注意添加 MediaRouteButton 再加上 SessionManagerListener 在相应的活动上。

MediaRouteButton mMediaRouteButton;

onCreateView(){
...
...
       setupCastListener(); // initialize listener variable
       mCastContext = CastContext.getSharedInstance(getActivity());

       // add and setup mMediaRouteButton - CastButtonFactory
       mMediaRouteButton = getActivity().findViewById(R.id.media_route_button);
       CastButtonFactory.setUpMediaRouteButton(getContext(), mMediaRouteButton);
...
...
}

© www.soinside.com 2019 - 2024. All rights reserved.