2014-02-26 52 views
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(); 
} 
+1

你可以尝试开源示例应用程序,看看你的设备是否被发现:https://github.com/googlecast/MediaRouter-Cast-Button-android –

+0

感谢Leon Nicholls。单击应用程序中的MediaRouterDiscovery按钮时,我的测试结果未找到任何设备。只是无法想出其他地方失踪。 – cc5zhenhua

+0

尝试重新下载android支持库,但没有奏效。 – cc5zhenhua

回答

0

查看内嵌评论。再次感谢Leon Nicholls。

相关问题