将图片投射到Chromecast

我正在关注这些( 1,2 )指南,为Chromecast创build一个发件人Android应用程序,我只对发送图片感兴趣。 有很多信息和示例如何投射文本audiovideo 。 但没有一个单词如何与图片

我相信stackoferflow的力量 ,有人应该面对这样的问题。 请给出一些很好的示例或教程。 我需要的是使用Media Router及其function投射全屏图像的指导。

多数民众赞成我是如何使用自定义通道发送短信:

  /** * Send a text message to the receiver */ private void sendMessage(String message) { if (mApiClient != null && mSmartBusChannel != null) { try { Cast.CastApi.sendMessage(mApiClient, mSmartBusChannel.getNamespace(), message) .setResultCallback(new ResultCallback<Status>() { @Override public void onResult(Status result) { if (!result.isSuccess()) { Log.e(TAG, "Sending message failed"); } } }); } catch (Exception e) { Log.e(TAG, "Exception while sending message", e); } } else { Toast.makeText(this, message, Toast.LENGTH_SHORT) .show(); } } 

video正在使用RemotePlaybackClient发送。好的,关于照片的是什么?

非常感谢您的帮助。


编辑:

我已经find了如何从本地存储器发送图片的方法(在这个博客上) 。 是的,这似乎并没有工作。

 public final void openPhotoOnChromecast(String title, String url, String ownerName, String description) { try { Log.d(TAG, "openPhotoOnChromecast: " + url); JSONObject payload = new JSONObject(); payload.put(KEY_COMMAND, "viewphoto"); payload.put("fullsizeUrl", url); payload.put("ownerName", ownerName); payload.put("title", title); payload.put("description", description); sendMessage(payload); } catch (JSONException e) { Log.e(TAG, "Cannot parse or serialize data for openPhotoOnChromecast", e); } catch (IOException e) { Log.e(TAG, "Unable to send openPhotoOnChromecast message", e); } catch (IllegalStateException e) { Log.e(TAG, "Message Stream is not attached", e); } } 

PS此方法使用来自这些库(从gradle)的sendMessage(...) ):

 compile files('libs/commons-io-2.4.jar') compile files('libs/GoogleCastSdkAndroid.jar') 

Solutions Collecting From Web of "将图片投射到Chromecast"

在这里看看: 使用CastCompanionLibrary简单显示图像的例子发送图像到Chromecast真的有三种select。

  1. 您可以将图像编码为base64string,并通过数据通道将其发送给接收方。 如果太大,可以将其拆分并通过多条消息发送。 这是一个非常糟糕的演员技术使用,你真的不应该这样做,但这是可能的。
  2. 您只需发送一个url到Chromecast设备,然后从接收器应用程序中的服务器中获取。 这是将照片发送到Chromecast的推荐方式
  3. 如果你没有从服务器上下载你的图片,你可以在你的客户端Android应用程序中设置你自己的服务器,然后发送一个url到接收器,从那里抓取它。 这对于发送图像来说相当复杂,但是比选项1更强大。

根据Google的说法,Chromecast的目标是从云中传输内容,这就是为什么没有真正的本地支持来发送本地图像的原因。 应鼓励开发者从服务器上的接收器应用程序加载图像。