0
以下是我的代码。有一个可用的googlecast设备,但我无法找到它。我已经按照SDK文档一步一步重建了以下简单项目,但仍然没有得到修复解决方案,所以重新打开此问题。非常感谢你。没有媒体路径可以找到和媒体路由actionBar项目或媒体路由按钮不可用
private MediaRouter mMediaRouter;
private MediaRouteSelector mMediaRouteSelector;
private MediaRouter.Callback mMediaRouterCallback;
private CastDevice mSelectedDevice;
private GoogleApiClient mApiClient;
private Cast.Listener mCastListener;
private ConnectionCallbacks mConnectionCallbacks;
// private ConnectionFailedListener mConnectionFailedListener;
// private HelloWorldChannel mHelloWorldChannel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMediaRouter = MediaRouter.getInstance(getApplicationContext());
mMediaRouteSelector = new MediaRouteSelector.Builder()
// .addControlCategory(CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID)
/* .addControlCategory(CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID)
.addControlCategory(CastMediaControlIntent.EXTRA_CAST_APPLICATION_ID)
.addControlCategory(CastMediaControlIntent.EXTRA_CAST_RELAUNCH_APPLICATION)
.addControlCategory(CastMediaControlIntent.EXTRA_CAST_STOP_APPLICATION_WHEN_SESSION_ENDS)
.addControlCategory(CastMediaControlIntent.EXTRA_CUSTOM_DATA)
.addControlCategory(CastMediaControlIntent.EXTRA_DEBUG_LOGGING_ENABLED)
.addControlCategory(CastMediaControlIntent.EXTRA_ERROR_CODE)*/
.addControlCategory(MediaControlIntent.CATEGORY_LIVE_AUDIO)
.addControlCategory(MediaControlIntent.CATEGORY_LIVE_VIDEO)
.addControlCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
.build();
mMediaRouterCallback = new MyMediaRouterCallback();
//mMediaRouter.addCallback(mMediaRouteSelector, mMediaRouterCallback,MediaRouter.CALLBACK_FLAG_UNFILTERED_EVENTS);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
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);
mediaRouteActionProvider.setRouteSelector(mMediaRouteSelector);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
return true;
}
@Override
public void onStart() {
mMediaRouter.addCallback(mMediaRouteSelector, mMediaRouterCallback,
MediaRouter.CALLBACK_FLAG_REQUEST_DISCOVERY);
super.onStart();
}
// Remove the selector on stop to tell the media router that it no longer
// needs to discover routes for your app.
@Override
public void onStop() {
mMediaRouter.removeCallback(mMediaRouterCallback);
super.onStop();
}
你可以尝试开源示例应用程序,看看你的设备是否被发现:https://github.com/googlecast/MediaRouter-Cast-Button-android –
感谢Leon Nicholls。单击应用程序中的MediaRouterDiscovery按钮时,我的测试结果未找到任何设备。只是无法想出其他地方失踪。 – cc5zhenhua
尝试重新下载android支持库,但没有奏效。 – cc5zhenhua