为了账号安全,请及时绑定邮箱和手机立即绑定

录音时,maxLevel * (mRecorder.getMaxAmplitude() / 32768) + 1的返回值始终等于1,用的还是真机

用的还是真机

正在回答

5 回答

我觉得如果handler 更新音量没问题的话,你看下你的权限是否加了。

0 回复 有任何疑惑可以回复我~

线程里面用循环没,,另在获取时,进行判断当前recorder是否为空,

1 回复 有任何疑惑可以回复我~

我的模拟器运行时 mRecorder.getMaxAmplitude()输出始终为0


0 回复 有任何疑惑可以回复我~

 Log.e("shen", maxLevel * mRecorder.getMaxAmplitude() / 32768 + " !");

int voiceLevel = maxLevel * mRecorder.getMaxAmplitude() / 32768 + 1;

Log.e("shen", voiceLevel + "");

return voiceLevel;

结果2个打印分别是

4 !

1

0 回复 有任何疑惑可以回复我~

因为你后面括号里的

mRecorder.getMaxAmplitude() 这个的值一直都是小于32768的吧  相除就为0了


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android-仿微信语音聊天
  • 参与学习       43200    人
  • 解答问题       220    个

结合自定义View和API,Dialog管理等实现实现微信语音

进入课程

录音时,maxLevel * (mRecorder.getMaxAmplitude() / 32768) + 1的返回值始终等于1,用的还是真机

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信