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