【问题标题】:Cast image (photo) to Chromecast将图像(照片)投射到 Chromecast
【发布时间】:2015-08-19 01:38:54
【问题描述】:

我正在按照这些(12)指南为 Chromecast 创建一个发送者 Android 应用程序,我只对发送图片感兴趣。 有很多信息和samples 如何投射文本音频视频。但没有一个字如何使用图片

我相信 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();
    }
}

视频正在使用RemotePlaybackClient发送。好的,图片呢?

非常感谢您的帮助。


编辑:

我找到了方法(on this blog) 如何从本地存储发送图片。是的,这似乎并不奏效。

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);
    }
}

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

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

【问题讨论】:

    标签: android casting chromecast google-cast


    【解决方案1】:

    看这里:Examples using CastCompanionLibrary to simply display an image 将图像发送到 Chromecast 确实有三个选项。

    1. 您可以将图像编码为 base64 字符串并通过 数据通道到接收器。如果太大,可以分开 并在多条消息中发送。这是一个非常糟糕的用途 铸造技术,你真的不应该这样做,但它是 可能。
    2. 您可以简单地向 Chromecast 设备发送一个 URL 并获取它 从接收器应用程序内的服务器。这是推荐的 将照片发送到 Chromecast 的方式
    3. 如果您不是从服务器下载图像,您可以设置 在您的客户端 Android 应用程序中运行您自己的服务器并发送一个 接收器的 url 以从那里获取它。这个比较 发送图像很复杂,但更强大 选项比选项 1。

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

    【讨论】:

    • 感谢您的明确回答。我会尝试这种方法。
    • 好的,第一种方法对我不起作用。我要试试第三个。据我了解,它将根据“设备上传 - chromecast 下载”原则工作。传输此类文件是否需要互联网连接,或者设备之间只有 WiFi 就足够了?还有另一个问题 - 我需要自定义接收器来处理这种方法还是默认接收器会处理它?顺便说一句,一些例子会很棒。
    • @Anz 你找到解决方案了吗?
    猜你喜欢
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 2017-08-23
    • 2015-05-30
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多