将图片(照片)投射到Chromecast

AnZ*_*AnZ 9 android casting google-cast chromecast

我以下(1,2)指导创建的Chromecast发送者的Android应用程序,我只在发送图片感兴趣.有很多信息和示例如何投射文本,音频视频.但是没有一个单词如何与图片.

我相信stackoferflow的力量,有人应该遇到这样的问题.请提供一些好的样本或教程.我需要的是使用Media Router及其功能投射全屏图片的指南.

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

 /**
 * 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();
    }
}
Run Code Online (Sandbox Code Playgroud)

视频正在使用RemotePlaybackClient..好吧,图片是什么?

非常感谢任何帮助.


编辑:

我已经找到了如何从本地存储发送图片的方法(在这个博客上).是的,这似乎并没有真正起作用.

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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

compile files('libs/commons-io-2.4.jar')
compile files('libs/GoogleCastSdkAndroid.jar')
Run Code Online (Sandbox Code Playgroud)

Joe*_*zek 5

在这里查看:使用CastCompanionLibrary仅显示图像的示例确实有三种将图像发送到Chromecast的选项。

  1. 您可以将图像编码为base64字符串,然后通过数据通道将其发送到接收器。如果太大,可以将其拆分并以多封邮件形式发送。这是对转换技术的真正不良使用,确实不应该这样做,但是有可能。
  2. 您只需将网址发送到Chromecast设备,然后从接收器应用程序中的服务器上获取即可。这是将照片发送到Chromecast的推荐方法
  3. 如果您不是从服务器下载图片,则可以在自己的客户端Android应用程序中设置运行自己的服务器,然后向接收者发送一个网址,以从那里获取它。对于跨图像发送来说,这相当复杂,但是比选项1健壮得多。

据Google称,Chromecast的目标是从云中流式传输内容,这就是为什么实际上没有任何本地支持发送本地图像的原因。应鼓励开发人员从服务器将图像加载到接收器应用程序上。