【问题标题】:cast device discovery won't work with my application ID投射设备发现不适用于我的应用程序 ID
【发布时间】:2014-11-15 03:50:28
【问题描述】:

我是 google cast sdk 的新手,我已经在 cast 开发者控制台上注册了一个带有风格媒体接收器的应用程序。我的想法是从 android 应用程序将图像发送到 chromecast 设备。 我已经尝试了一些示例并尝试编写自己的示例,以下是我用来发现设备的代码 sn-ps。但它似乎不起作用。我也在清单中设置了正确的权限,但由于某种原因,我无法在操作栏上显示投射按钮。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ActionBar actionBar = getSupportActionBar();
    actionBar.setBackgroundDrawable(new ColorDrawable(
            android.R.color.transparent));


    mMediaRouter = MediaRouter.getInstance(getApplicationContext());
    mMediaRouteSelector = new MediaRouteSelector.Builder()
    //.addControlCategory(
    //CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID).build();

    .addControlCategory(
            CastMediaControlIntent.categoryForCast(getResources()
                    .getString(R.string.app_id))).build();

    mMediaRouterCallback = new MyMediaRouterCallback();
}

@Override
protected void onResume() {
    super.onResume();
    // Start media router discovery
    mMediaRouter.addCallback(mMediaRouteSelector, mMediaRouterCallback,
            MediaRouter.CALLBACK_FLAG_REQUEST_DISCOVERY);
}       

@Override
protected void onPause() {
    if (isFinishing()) {
        // End media router discovery
        mMediaRouter.removeCallback(mMediaRouterCallback);
    }
    super.onPause();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    getMenuInflater().inflate(R.menu.main, menu);
    MenuItem mediaRouteMenuItem = menu.findItem(R.id.media_route_menu_item);
    MediaRouteActionProvider mediaRouteActionProvider = (MediaRouteActionProvider) MenuItemCompat
            .getActionProvider(mediaRouteMenuItem);
    // Set the MediaRouteActionProvider selector for device discovery.
    mediaRouteActionProvider.setRouteSelector(mMediaRouteSelector);
    return true;
}

【问题讨论】:

    标签: java android chromecast google-cast


    【解决方案1】:

    如果使用DEFAULT_MEDIA_RECEIVER_APPLICATION_ID 作为您的 appId 使投射按钮可见,但使用您自己的 appId 却不可见,那么这意味着您的投射设备没有为您的应用程序正确注册。如果是这种情况,您需要确保在开发人员控制台中使用了正确的序列号,并且在设置 chromecast 时选中了“发送序列号...”复选框。完成所有这些后,重新启动您的 chromecast,以便它可以选择新配置。

    【讨论】:

    • 所有设置好了。我可以使用 github 上的其他应用程序
    • 您没有回答我的问题:仅将您的应用程序 ID 更改为 DEFAULT_MEDIA_RECEIVER_APPLICATION_ID 而没有其他更改时是否有效?
    • 那么这不是你的应用程序id的问题,你需要在你的应用程序的其他地方寻找你的问题。此代码是否与此处的代码相同:github.com/googlecast/MediaRouter-Cast-Button-android/blob/…?如果是这样,那对您有用还是不适用?
    • 样式化接收器和默认接收器是相同的代码库,样式化接收器的某些方面可以根据您提供的 CSS 设置样式。
    • 这取决于你自己的要求。我们在 UX 指南/清单中的建议是在用户第一次启动应用程序时让 Cast 按钮引起他们的注意。
    猜你喜欢
    • 2014-03-15
    • 2021-03-09
    • 1970-01-01
    • 2011-10-15
    • 2012-04-23
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多