gpt4 book ai didi

android - MediaRouteButton 在 Fragment 中未激活

转载 作者:太空狗 更新时间:2023-10-29 14:37:43 28 4
gpt4 key购买 nike

我在我的应用程序中使用按钮启动 chromecast android.support.v7.app.MediaRouteButton 中的 Activity xml 和带有视频播放器的 fragment xml。

为了初始化转换按钮,我使用了下一个代码:

private void setupChromeCast() {
try {
CastButtonFactory.setUpMediaRouteButton(getActivity(), castButton);
castContext = CastContext.getSharedInstance(getActivity());
castSession = castContext.getSessionManager().getCurrentCastSession();
onCastStateChanged(castContext.getCastState());
castSessionManager = new CastSessionManager(this);
isChromeCastAvailable = true;
} catch (Exception e) {
isChromeCastAvailable = false;
}
}

而且它在 Activity 中运行良好。我的意思是,当 chromecast 设备靠近时,我的 MediaRouteButton 会激活,我可以按下它。但是当这个 Button 在 Fragment 上时,它不会变为 Activity 状态。和回调

   @Override
public void onCastStateChanged(int state)

不打电话。那么,如何修复这个错误呢?有一个有趣的时刻:当我在 fragment 中时,按钮未激活,但是当我将我的应用程序隐藏到后台,然后打开到前台时,我的 mediaroutebutton 变为激活状态。太奇怪了。

最佳答案

在您的 Activity 中,初始化Cast:

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

CastContext.getSharedInstance(this);
}

然后在您的 fragment 中,您可以获得Cast上下文:

@Override
public void onResume() {
super.onResume();

CastContext cc = CastContext.getSharedInstance();
cc.addCastStateListener(this);
cc.getSessionManager().addSessionManagerListener(
this, CastSession.class);
}

通过 Cast 版本 18.1.0 验证。

关于android - MediaRouteButton 在 Fragment 中未激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53318114/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com