使用ChromeAPI控制Chromecast音频音量

使用ChromeAPI控制Chromecast音频音量,chromecast,google-cast,Chromecast,Google Cast,在使用Chromecast音频时,我需要在用户界面中绘制客户端(发送方)的适当音量。我发现有两种从Chromecast接收(也可能设置)音量的方法-从接收器和媒体名称空间。据我所知,Receiver名称空间存储一般设备的音量,而Media名称空间存储当前播放的曲目的音量 在使用load请求加载任何曲目之前,似乎无法使用GET\u STATUS请求media命名空间来接收媒体卷。那么,如何正确显示加载介质前要使用的卷?加载媒体后,将UIRECEIVERvolume更改为MEDIAvolume看起来

在使用Chromecast音频时,我需要在用户界面中绘制客户端(发送方)的适当音量。我发现有两种从Chromecast接收(也可能设置)音量的方法-从
接收器
媒体
名称空间。据我所知,
Receiver
名称空间存储一般设备的音量,而
Media
名称空间存储当前播放的曲目的音量

  • 在使用
    load
    请求加载任何曲目之前,似乎无法使用
    GET\u STATUS
    请求
    media
    命名空间来接收媒体卷。那么,如何正确显示加载介质前要使用的卷?加载媒体后,将UI
    RECEIVER
    volume更改为
    MEDIA
    volume看起来不是一个好的解决方案,会让用户大吃一惊
  • 我无法使用
    SET\u 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);
    
    我做错了什么


  • 为了在接收器上设置卷,您应该使用SDK的API,而不是发送手工编制的消息。例如,您应该使用。另外,请使用接收方卷而不是流卷。

    如果SDK的API涵盖所有平台、语言和用例,我很乐意使用它。但是,当我开发Android、iOS而不是Chrome应用程序时,我不能使用它。它将被移植到其他平台。