Android:让 Google Cast MediaRouter 图标显示
Posted
技术标签:
【中文标题】Android:让 Google Cast MediaRouter 图标显示【英文标题】:Android: Getting Google Cast MediaRouter Icon to Show 【发布时间】:2014-10-12 19:45:47 【问题描述】:我正在尝试使用 Chromecast 测试一些内容,但在让 MediaRouter 按钮显示在操作栏中时遇到问题。我已经在 cast dev 控制台上注册了我的设备,manifest 具有播放服务/互联网权限,并且我一直在关注文档。
主活动:
public class MainActivity extends ActionBarActivity
private MediaRouteSelector mSelector;
private MediaRouter mMediaRouter;
private final MediaRouter.Callback mMediaRouterCallback =
new MediaRouter.Callback()
@Override
public void onRouteSelected(MediaRouter router, MediaRouter.RouteInfo route)
@Override
public void onRouteUnselected(MediaRouter router, MediaRouter.RouteInfo route)
@Override
public void onRoutePresentationDisplayChanged(
MediaRouter router, MediaRouter.RouteInfo route)
;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMediaRouter = MediaRouter.getInstance( this );
mSelector = new MediaRouteSelector.Builder()
.addControlCategory(CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID)
.build();
@Override
public void onStart()
mMediaRouter.addCallback(mSelector, mMediaRouterCallback,
MediaRouter.CALLBACK_FLAG_REQUEST_DISCOVERY);
super.onStart();
@Override
public void onStop()
mMediaRouter.removeCallback(mMediaRouterCallback);
super.onStop();
@Override
public boolean onCreateOptionsMenu(Menu menu)
getMenuInflater().inflate(R.menu.main, menu);
MenuItem mediaRouteMenuItem = menu.findItem(R.id.media_route_menu_item);
MediaRouteActionProvider mediaRouteActionProvider =
(MediaRouteActionProvider) MenuItemCompat.getActionProvider(
mediaRouteMenuItem);
mediaRouteActionProvider.setRouteSelector(mSelector);
return true;
菜单:
<?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="Chromecast"
app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
app:showAsAction="always"
/>
</menu>
Gradle 依赖项:
compile 'com.android.support:appcompat-v7:20.0.0'
compile 'com.android.support:mediarouter-v7:19.0.+'
compile 'com.google.android.gms:play-services:6.1.11'
【问题讨论】:
【参考方案1】:你快到了。尝试对您的选择器进行以下更改;将其更改为:
mSelector = new MediaRouteSelector.Builder().addControlCategory(CastMediaControlIntent.categoryForCast(CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID)).build();
看看有没有帮助。
【讨论】:
【参考方案2】:我知道您说您注册了开发控制台,但您是否启用了投射设备在检查更新时发送其序列号?
【讨论】:
由于他使用的是默认接收器,因此无需进行任何设备注册。以上是关于Android:让 Google Cast MediaRouter 图标显示的主要内容,如果未能解决你的问题,请参考以下文章
在 Google Cast Chrome API (v3) 中使用playbackDuration/startTime 进行部分播放
Google Cast Android Sender:未调用 ResultCallback
设置 Google Cast 示例“CastHelloText-Android”时出错