我有一个用例,如如果用户说话,我必须显示一些波形图标,用户停止说话时,波形图标必须消失,我如何检测用户是否在说话?请帮助我
override fun onResume() {
checkValue(recorder.maxAmplitude);
}
fun checkValue(amplitude: Int) {
var amplitude = amplitude
try {
if (amplitude > 1000) {
amplitude = recorder.getMaxAmplitude()
Thread.sleep(2000)
isUserSpeaking.value = true
Toast.makeText(this,"User Speaking", Toast.LENGTH_LONG).show()
} else if (isUserSpeaking.value) {
Toast.makeText(this,"User Speaking else if", Toast.LENGTH_LONG).show()
}
} catch (e: Exception) {
e.printStackTrace()
}
}
1条答案
按热度按时间jobtbby31#
如果您使用MediaRecorder录制音频,您可以使用MediaRecorder.getMaxAmplitude定期请求振幅。
使用这个函数