hfp를 사용하여 핸즈프리 클라이언트 장치로 작동하는 Android 장치가 있습니다.
전화를받을 수 있고 스피커와 마이크가 예상대로 작동합니다.
내 문제는 볼륨을 제어 할 수 없다는 것입니다.
올바른 스트림을 찾기 위해 다음 코드 줄을 사용했지만 작동하지 않는 것 같습니다.
전화에서 클라이언트로 전송되는 볼륨 명령을 HeadsetClientStateMachine
다음 링크의 # 1822 라인 에서 추적했습니다 . HeadsetClientStateMachine from lolipop
case EVENT_TYPE_VOLUME_CHANGED:
if (event.valueInt == HeadsetClientHalConstants.VOLUME_TYPE_SPK) {
mAudioManager.setStreamVolume(AudioManager.STREAM_BLUETOOTH_SCO, event.valueInt2, AudioManager.FLAG_SHOW_UI);
mVgsFromStack = true;
Log.d(TAG, "EventVolumeChange STREAM_BLUETOOTH_SCO value: " + event.valueInt2);
}
전화에서 볼륨을 변경하면 사운드의 업데이트 된 값을 보여주는 로그가 표시됩니다. 즉, setStreamVolume()
메서드가 호출되고 있지만 볼륨은 변경되지 않습니다.
이 문제의 원인이 무엇인지 아는 사람이 있습니까?
편집하다:
나는 여전히 답을 찾고 있으며 이제 오디오 HAL 구현을 찾고 있습니다. HAL과 오디오 드라이버 사이의 링크가 어떻게 든 잘못된 것 같습니다. 저수준 구현에 대해 잘 모르고 무엇을 찾아야할지 모르겠습니다.