在使用Chromecast Audio时,我需要在客户端(发送方)方面在UI中绘制适当的音量级别。我看到有两种方法可以从Chromecast接收(也可能设置)音量 - 来自Receiver
和Media
命名空间。在我的理解中Receiver
命名空间存储一般设备的音量,而Media
命名空间存储当前播放曲目的音量。
GET_STATUS
请求加载任何曲目之前,似乎无法使用Media
LOAD
命名空间请求接收媒体量。那么如何正确显示加载媒体之前将使用的音量?在加载媒体后将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);
我在这里做错了什么?
答案 0 :(得分:2)
要在接收器上设置音量,您应该使用SDK的API而不是发送手工制作的消息。例如,您应该使用setReceiverVolumeLevel()。此外,使用接收器音量而不是流音量。