我按照这些(1,2)指南为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);
}
}
P.S。此方法使用这些库中的sendMessage(...)
(来自gradle):
compile files('libs/commons-io-2.4.jar')
compile files('libs/GoogleCastSdkAndroid.jar')
答案 0 :(得分:5)
在此处查看:Examples using CastCompanionLibrary to simply display an image向Chromecast发送图片实际上有三个选项。
根据谷歌的说法,Chromecast的目标是从云中传输内容,这就是为什么没有任何本地支持发送本地图像的原因。应鼓励开发人员从服务器在接收器应用程序上加载图像。