2016-10-21 11 views
1

Chromecast Audio로 작업 할 때 클라이언트 (발신자) 측에서 적절한 볼륨 레벨로 UI를 그려야합니다. ReceiverMedia 네임 스페이스의 Chromecast 볼륨을 수신하는 두 가지 방법이 있습니다. 내 이해에서 Receiver 네임 스페이스는 일반 장치의 볼륨을 저장하는 반면 Media 네임 스페이스는 현재 재생되는 트랙의 볼륨을 저장합니다.Chromecast 크롬 API를 사용하는 오디오 볼륨

  1. 내가 LOAD 요청에 어떤 트랙을로드하기 전에 Media 네임 스페이스 GET_STATUS 요청을 사용하여 미디어 볼륨을받을 수없는 것 같다. 그런 다음 미디어를로드하기 전에 사용할 볼륨을 올바르게 표시하려면 어떻게합니까? 미디어가로드 된 후 UI 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가 모든 플랫폼, 언어 및 사용 사례를 다룬다면 기꺼이 사용하게 될 것입니다. 하지만 안드로이드도 아니고 Chrome 앱도 아닌 iOS를 개발하고 있으므로 사용할 수 없습니다. – rightaway717

+0

@ rightaway717 어떤 플랫폼을 개발하고 있습니까? –

+0

@ plátanoplomo 나는 안드로이드 네이티브 C++ 앱을 만들고있다. 다른 플랫폼으로 포팅 될 것입니다. – rightaway717