Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将图像(照片)投射到Chromecast_Android_Casting_Chromecast_Google Cast - Fatal编程技术网

Android 将图像(照片)投射到Chromecast

Android 将图像(照片)投射到Chromecast,android,casting,chromecast,google-cast,Android,Casting,Chromecast,Google Cast,我正在按照这些(,)指南为Chromecast创建一个sender Android应用程序,我只对发送图片感兴趣。 有很多信息以及如何播放文本、音频和视频。但是没有一个词可以用图片来表达这一点 我相信stackoferflow的力量,有人应该面对这样的问题。请提供一些好的示例或教程。我所需要的只是使用媒体路由器及其功能播放全屏图片的指南 这就是我使用自定义频道发送短信的方式: /** * Send a text message to the receiver */ private void

我正在按照这些(,)指南为Chromecast创建一个sender Android应用程序,我只对发送图片感兴趣。 有很多信息以及如何播放文本音频视频。但是没有一个词可以用图片来表达这一点

我相信stackoferflow的力量,有人应该面对这样的问题。请提供一些好的示例或教程。我所需要的只是使用
媒体路由器及其功能播放全屏图片的指南

这就是我使用自定义频道发送短信的方式:

 /**
 * 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();
    }
}
注意:此方法使用这些库(来自gradle)中的
sendMessage(…)

看看这里:向Chromecast发送图像有三种选择

  • 您可以将图像编码为base64字符串,然后通过 到接收器的数据通道。如果它太大,你可以把它分开 并以多条消息的形式发送。这是一个非常糟糕的用途 你不应该这么做,但事实上确实如此 可能
  • 您只需向Chromecast设备发送一个url并获取即可 从接收器应用程序内的服务器。这是推荐的 将照片发送到Chromecast的方法
  • 如果您没有从服务器下载图像,可以设置 在客户端Android应用程序中启动自己的服务器并发送 指向接收者的url以从那里获取它。这是相当有趣的 发送图像很复杂,但更为健壮 选项1之外的选项

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

    谢谢您的明确回答。我会试试这个方法。好吧,第一种方法对我不起作用。我要试试第三个。据我所知,它将根据“设备上传-chromecast下载”的原则工作。这样的文件传输是否需要互联网连接,或者设备之间仅使用WiFi就足够了?还有一个问题——这种方法需要定制接收者还是默认接收者来处理?顺便说一句,举个例子会很好。@Anz你找到解决这个问题的方法了吗?
    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);
        }
    }
    
    compile files('libs/commons-io-2.4.jar')
    compile files('libs/GoogleCastSdkAndroid.jar')