我有一个使用Linphone进行VOIP通话的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 :(得分:0)
由于音量自动降低,我只能在播放声音后尝试接听电话。由于SoundPool
在声音播放完毕后不支持事件处理,我已经切换到使用支持它的MediaPlayer
,所以我正在播放铃声,然后接受呼叫。< / p>