SessionManagerListener 不工作
Posted
技术标签:
【中文标题】SessionManagerListener 不工作【英文标题】:SessionManagerListener not working 【发布时间】:2016-09-20 08:19:17 【问题描述】:我正在使用应用程序并尝试投射视频,但是当我想为投射会话设置监听器时无法正常工作。我在一个片段中工作,所以我无法弄清楚问题出在哪里。
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;
;
【问题讨论】:
你在哪里/如何注册这个监听器? 我发现问题出在哪里了,这行代码我忘记了,mCastContext.getSessionManager().addSessionManagerListener( mSessionManagerListener, CastSession.class);
【参考方案1】:
故障 1 :- 通常人们忘记在 onResume
方法中注册监听器
onResume()
mCastContext.getSessionManager()
.addSessionManagerListener(mSessionManagerListener, CastSession.class);
错误 2 :- 有些人在 home screen
上添加 MediaRouteButton
并在不同的活动中写 SessionManagerListener
而忘记在 @987654327 上添加 MediaRouteButton
@。所以,显然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);
...
...
【讨论】:
以上是关于SessionManagerListener 不工作的主要内容,如果未能解决你的问题,请参考以下文章