2016-10-21 3 views
1

Chromecast Audioを使用する場合は、クライアント(送信者)側に適切な音量レベルを描画する必要があります。 Chromecastからボリュームを受信する方法は2通りあります(ReceiverMediaの名前空間)。私の理解ではReceiverネームスペースは一般的なデバイスのボリュームを格納し、Mediaネームスペースは現在再生されているトラックのボリュームを保存します。Chromecastを制御するChromeのAPIを使用するオーディオボリューム

  1. 私が私がLOADリクエストで任意のトラックをロードする前にMedia名前空間のGET_STATUS要求を使用して、メディアの音量を受けることができないようです。次に、メディアをロードする前に使用する音量を正しく表示するにはどうすればよいですか?メディアがロードされた後にRECEIVERのボリュームをMEDIAのボリュームに変更すると、良い解決策のようには見えず、ユーザーにとっては驚きになります。
  2. は私がReceiver名前空間のSET_VOLUME要求を使用して、ボリュームを制御することができない - 以下の行は、最後のものの代わりに使用している場合は、私が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); 
    

    を得なかっましたが、メディアの音量が制御されているOK:

    msg["mediaSessionId"] = m_media_session_id; 
    response = send("urn:x-cast:com.google.cast.media", msg); 
    

    私はここで間違っていますか?

答えて

2

受信者のボリュームを設定するには、手作りのメッセージを送信する代わりにSDKのAPIを使用する必要があります。たとえば、setReceiverVolumeLevel()を使用します。また、ストリームボリュームではなくレシーバーボリュームを使用します。

+1

SDKのAPIがすべてのプラットフォーム、言語、および使用例をカバーしていれば、私はそれを使用してうれしいです。しかし、Android、iOS、Chromeアプリを開発していないので、私はそれを使うことはできません。 – rightaway717

+0

@ rightaway717あなたはどのプラットフォームで開発していますか? –

+0

@plátanoplomo私はAndroidネイティブC++アプリを開発中です。それは他のプラットフォームに移植される予定です。 – rightaway717

関連する問題