有没有办法使用标准(桌面)Java连接到ChromeCast。我正在寻找一种自动化测试的方法,并希望我们的CC:s自动播放视频。
到目前为止,我找到了这个项目:
https://github.com/vitalidze/chromecast-java-api-v2
但到目前为止,我还没能让它发挥作用。
我可以使用mDNS找到Chromecast,但是当我尝试连接到它时,我只是从CC接近。
我的测试代码:
public static void main(String[] args) {
try {
ChromeCasts.startDiscovery();
// Wait for CC:s to apear
Thread.sleep(5000);
for (ChromeCast cc : ChromeCasts.get()) {
if (cc.getName().equals("cc02")) {
cc.connect();
Status status = cc.getStatus();
cc.disconnect();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
日志的结果:
2015-12-15 19:14:37,727 DEBUG [main] su.litvak.chromecast.api.v2.Channel - - > { “类型”: “StandardMessage $平”} 2015-12-15 19:14:37,769 DEBUG [main] su.litvak.chromecast.api.v2.Channel - - > { “类型”: “StandardMessage $连接”, “原产地”:{}} 2015-12-15 19:14:37,794 DEBUG [main] su.litvak.chromecast.api.v2.Channel - - > { “类型”: “StandardRequest $状态”, “将requestId”:1} 2015-12-15 19:14:37,802 DEBUG [Thread-4] su.litvak.chromecast.api.v2.Channel - < - {“type”:“CLOSE”} 线程“Thread-4”中的异常java.lang.NoSuchMethodError:org.codehaus.jackson.JsonNode.has(Ljava / lang / String;)Z 在su.litvak.chromecast.api.v2.Channel $ ReadThread.run(Channel.java:127) 2015-12-15 19:14:38,771 DEBUG [sender-7hhge79m75 PING] su.litvak.chromecast.api.v2.Channel - - > { “类型”: “$ StandardMessage平”}
我得到了代码的答案。所以我会回答我自己的问题。
是的,有可能但谷歌没有正式支持。上面代码的问题来自我使用的旧杰克逊解析器。
上述项目至少可以用于我们的用例。我们正在考虑扩大它。
答案 0 :(得分:3)
不,您需要使用Android,iOS和Chrome上提供的Cast SDK。替代方法是使用纯媒体路由器API来使用强制转换设备,这又需要Android框架等。
答案 1 :(得分:0)
您对项目中的不同版本具有相同的依赖关系。可能你有两个项目有杰克逊依赖,但在不同的版本。
NoSuchMethodError: org.codehaus.jackson.JsonNode.has(Ljava/lang/String;)
关于chromecast-java-api-v2,它的工作非常好,但你需要一个媒体服务器,然后你请求chromecast播放你的文件的chromecast-java-api-v2。