【发布时间】:2015-08-16 10:07:04
【问题描述】:
我知道这是一个很常见的问题,尽管通过 stackoverflow 和 android developers site 搜索让我一无所知。
- 是否需要在 Google Cast SDK 开发者控制台中注册应用程序?我不需要自定义接收器,所以我可以使用
CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID,可以吗? - 如果我注册应用程序并收到它的 ID 但不发布它,它是否允许我使用 Google Cast 功能?
- 注册设备。我需要注册手机的序列号还是 Chromecast 的序列号?或两者?
我相信问题出在那儿,但仍然是代码。可能由于其他原因,Cast Button 没有显示。
清单:
...
android:theme="@style/Theme.AppCompat">
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
...
媒体路由器菜单,media_router.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/media_route_menu_item"
android:title="@string/media_router_menu_title"
app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
app:showAsAction="always"/>
</menu>
Gradle 依赖项:
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.android.support:mediarouter-v7:21.0.0'
compile 'com.google.android.gms:play-services:7.3.0'
buildMediaRouter() 在onCreate() 中调用:
private void buildMediaRouter(){
mMediaRouter = MediaRouter.getInstance(getApplicationContext());
// Create a route selector for the type of routes your app supports.
mMediaRouteSelector = new MediaRouteSelector.Builder()
.addControlCategory(MediaControlIntent.CATEGORY_LIVE_AUDIO)
.addControlCategory(MediaControlIntent.CATEGORY_LIVE_VIDEO)
.addControlCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
//default app ID because I don't need custom Receiver
.addControlCategory(CastMediaControlIntent.categoryForCast(CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID))
.build();
}
创建选项菜单:
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
super.onCreateOptionsMenu(menu);
// Inflate the menu and configure the media router action provider.
getMenuInflater().inflate(R.menu.media_router, menu);
// Attach the MediaRouteSelector to the menu item
MenuItem mediaRouteMenuItem = menu.findItem(R.id.media_route_menu_item);
MediaRouteActionProvider mediaRouteActionProvider =
(MediaRouteActionProvider) MenuItemCompat.getActionProvider(
mediaRouteMenuItem);
mediaRouteActionProvider.setRouteSelector(mMediaRouteSelector);
return true;
}
感谢任何帮助。
【问题讨论】:
标签: android casting chromecast google-cast