目前,我正在進入MediaRoute Android類。我已經關注並理解了這些示例,並且我試圖在兩個設備之間共享視頻,例如,使用相同硬件的兩個平板電腦。我有兩個自定義應用程序。如何使用MediaRouting在Android設備之間共享視頻
- 的MediaRouter應用程序,它會發送視頻
- 的MediaRouterProvider應用程序,它會接收視頻和播放。
事實是,如果第二個應用安裝在第二個設備中,我安裝在第一個設備中的第一個應用無法看到路由。相反,如果我在第一個設備中安裝第二個應用程序,則可以發現MediaRouteProvider應用程序中定義的MediaRoutes,因此第二個應用程序在本地工作。
我發佈MediaRouteProvider路線是這樣的:
private void publishRoutes() {
Resources r = getContext().getResources();
// Create a route descriptor using previously created IntentFilters
MediaRouteDescriptor routeDescriptor = new MediaRouteDescriptor.Builder(
VARIABLE_VOLUME_BASIC_ROUTE_ID,"WTF")
.setDescription("descripcion")
.addControlFilters(CONTROL_FILTERS_BASIC)
.setPlaybackStream(AudioManager.STREAM_MUSIC)
.setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)
.setDeviceType(MediaRouter.RouteInfo.DEVICE_TYPE_UNKNOWN)
.setVolumeHandling(MediaRouter.RouteInfo.PLAYBACK_VOLUME_VARIABLE)
.setVolumeMax(VOLUME_MAX)
.setVolume(mVolume)
.build();
// Add the route descriptor to the provider descriptor
MediaRouteProviderDescriptor providerDescriptor =
new MediaRouteProviderDescriptor.Builder()
.addRoute(routeDescriptor)
.build();
// Publish the descriptor to the framework
setDescriptor(providerDescriptor);
}
當然,我知道,沒有任何有關發現不航線兩個設備之間的直接連接的魔力。兩者都連接到同一個Wifi網絡。另外,我有一臺連接到電視的chromecast,我可以發現它,並且還可以在電視機上播放視頻。
所以總結一下,我想知道什麼是爲我的第一個應用程序發現chromecast,以便爲我的第二個應用程序做類似的事情。我嘗試在兩臺設備之間建立直接套接字連接,但無法發現路由。也許我正在尋找一個錯誤的方法,所以任何幫助將不勝感激。
可能重複:http://stackoverflow.com/questions/39131973/mediarouterprovider-not-visible-in-the-network – 0xcaff