2017-02-02 9 views
0

VOIP 통화에 Linphone을 사용하는 Android 애플리케이션이 있습니다. 전화 수신시 사운드 풀 볼륨 제어

내가 전화를받을

, 나는 이런 식으로 내 자신의 벨소리 (원시 MP3 파일을) 시작 했어 :

final AudioManager audioManager = (AudioManager)ctx.getSystemService(Context.AUDIO_SERVICE); 
final float maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING); 
audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL); 
audioManager.setStreamVolume(AudioManager.STREAM_RING, (int)maxVolume , 0); 
soundPool.play(id, maxVolume , maxVolume , 1, 0, 1.0f); 

내가 원하는 소리가 재생되지만 낮은 볼륨으로되어있다. 호출 자체는 수신 측의 허가없이 자동으로 수락됩니다.

사운드가 끝나기 전에 전화를 받고 종료하면 소리가 계속 나옵니다 (이 경우는 정상이지만 갑자기 원하는만큼 갑자기 볼륨이 높아집니다). 즉, 장치가 사운드 풀의 볼륨이 자동으로 감소되는 호출 상태로 들어갈 수 있으며 호출이 끝나면 사운드는 최대 값을 가질 수 있습니다.

통화 도중 볼륨을 최대로 설정하려면 어떻게해야합니까?

+0

안녕하세요, 요나단, 정확한 요구 사항은 무엇입니까? 통화 중에 소리를 내고 싶습니까? 왜 통화가 진행되는 동안 사운드를 재생하고 싶습니까? 이 작업을 통해 달성하려는 목표는 무엇입니까? – Chandrakanth

+0

통화가 자동으로 수락되므로 진행중인 통화가 있음을 알리는 소리를 재생해야합니다. 그래서 나는 소리를 낼 수는 있지만, 통화가 진행되는 한 최대 음량에 놓을 수는 없다. –

답변

0

볼륨이 자동으로 줄어들 기 때문에 사운드를 재생 한 후에 만 ​​전화를 받아야했습니다. SoundPool은 사운드 재생이 끝나면 이벤트 처리를 지원하지 않으므로 지원하지 않는 MediaPlayer을 사용하도록 전환 했으므로 벨소리를 재생하고 그 후에 전화를 수락합니다.