7puchi
相信很多使用该开源库的都是只先调用一次 `mWaveLineView.startAnim()` 之后Handler中循环调用 `mWaveLineView.setVolume(mRecorder.volumeDb);` 这样导致空指针错误!(暂时没有调查原因) ### **解决方案:** 在Handler中不仅需要循环调用 `mWaveLineView.setVolume(mRecorder.volumeDb);` 还需要调用上面代码之前调用 `mWaveLineView.startAnim()` 完整示例(Kotlin): ``` var mHandler: Handler? =null; var mRunnable: Runnable? =null; mHandler = Handler(); mRunnable = object: Runnable { override fun run() { //需要运行在UiThread否则可能还会出现空指针问题(未知) ViewUtils.runOnUiThread(Runnable { //必须setVolume方法之前调用startAnim mWaveLineView.startAnim(); mWaveLineView.setVolume(mRecorder!!.volumeDb); }); mHandler!!.postDelayed(this, 500); } }; mHandler!!.postDelayed(mRunnable, 500);//每500毫秒执行一次,看你业务刷新需求 ``` 这样开始就没有空指针问题了 (但是测试过程中超过一定时间有概率空指针,问题有待探究) FloatFutrue-7Puchi