使用 Chrome API 控制 Chromecast 音频音量
Posted
技术标签:
【中文标题】使用 Chrome API 控制 Chromecast 音频音量【英文标题】:Control Chromecast Audio volume using Chrome API 【发布时间】:2016-10-21 11:40:59 【问题描述】:使用 Chromecast Audio 时,我需要在客户端(发送方)端在 UI 中绘制适当的音量级别。我看到有两种从 Chromecast 接收(也可能设置)音量的方法 - 从 Receiver
和 Media
命名空间。在我的理解中,Receiver
命名空间存储了一般设备的音量,而Media
命名空间存储了当前播放曲目的音量。
-
在使用
LOAD
请求加载任何曲目之前,我似乎无法通过使用GET_STATUS
请求Media
命名空间来接收媒体音量。那么如何在加载媒体之前正确显示将使用的音量?加载媒体后将 UI 中的 RECEIVER
音量更改为 MEDIA
音量看起来不是一个好的解决方案,而且会给用户带来惊喜。
我无法使用 SET_VOLUME
请求 Receiver
命名空间来控制音量 - 我没有收到来自 Chromecast 的回复
Json::Value msg, response;
msg["type"] = "SET_VOLUME";
msg["requestId"] = ++request_id;
msg["volume"]["level"] = value; // float
response = send("urn:x-cast:com.google.cast.receiver", msg);
如果使用以下几行而不是最后一行,则媒体音量控制正常:
msg["mediaSessionId"] = m_media_session_id;
response = send("urn:x-cast:com.google.cast.media", msg);
我在这里做错了什么?
【问题讨论】:
【参考方案1】:为了在接收器上设置音量,您应该使用 SDK 的 API,而不是发送手工制作的消息。例如,您应该使用setReceiverVolumeLevel()。另外,请使用接收器音量而不是流音量。
【讨论】:
如果 SDK 的 API 涵盖所有平台、语言和用例,我会很高兴使用它。但由于我既没有开发 android 应用,也没有开发 ios 应用,也没有开发 Chrome 应用,所以我不能使用它。 @plátanoplomo 我正在开发一个 Android 原生 C++ 应用程序。它将被移植到其他平台。以上是关于使用 Chrome API 控制 Chromecast 音频音量的主要内容,如果未能解决你的问题,请参考以下文章
使用 Javascript fetch 命令从 google chrome 控制台请求新闻 API 运行命令时出现问题
使用 Javascript Geolocation API,SyntaxError: Unexpected Identifier in Chrome 的 Javascript 控制台
我可以从外部 javascript 访问控制台命令行 API(例如来自 Firebug 或 Chrome Inspector 控制台的 $$ 和 traceAll)吗?