为了账号安全,请及时绑定邮箱和手机立即绑定
怎么没源码啊 亲 这可不是你的风格啊 娃哈哈
最好应该是用mHndler.post(mGetVoiceLevelRunnable)来执行,然后在录音结束时再remove掉应该会比较好。
在AudioRecorderButton里面mHandler的MSG_AUDIO_PREPARED处理上,是直接new出的一个线程,在录音停止时也没有remove掉这个线程,所以我在真机上测试时,按下按钮松开后会报错,因为那个线程没有被关闭而还去执行了AudioManager的getVoiceLevel()方法,而此时getVoiceLevel()方法里面的mMediaRecorder是为null的,所以报了空指针异常。目前我的一个粗暴解决办法是直接在getVoiceLevel()方法里的if里去判断下mMediaRecorder != null。
@linshiyx 应该是不需要停止了,因为在MediaManager里面已经做了mMediaPlayer是否为null的判断,如果不为null,说明还在播放前面的音频,在播放本次点击的音频时进行了reset()操作
翔哥认真的样子好搞笑;看视频确实相对比看博客花时间一些,视频是把写代码的过程都记录下来了,博客是直接贴代码;本次案例我绝对重点是在自定义按钮上面,重写触摸时间,按下和移动,离开屏幕等事件,处理显示同对话框的逻辑,处理录音的准备,开始录音等逻辑,并且通过回调告诉activity录音的文件路径和事件等参数,activity主要处理音频播放等逻辑
哇,我发现上面的问题都是老师亲自回答的,好负责的老师
老师讲得不错,越来越imooc
Dialog的Theme少了个item:
<item name="android:windowNoTitle">true</item>
强烈建议换Studio教学!
没有源码,错了从头找吗!
强烈建议换Studio教学!
非常好!学一下软件设计思考方式挺好的,还有编码习惯。
切换音频,停止上一个动画的同时还应该停止上一个音频吧
java.lang.IllegalStateException
at android.media.MediaRecorder.stop(Native Method)
at com.example.joker.recorder.AudioManager.release(AudioManager.java:119)
at com.example.joker.recorder.AudioManager.cancel(AudioManager.java:126)

报这个错。。。
课程须知
本课程是基于Android开发的案例,需要大家对Android的了解要达到小成的境界: 1、掌握自定义View的流程与步骤 2、了解MediaPlayer、MediaRecorder相关API 3、了解Dialog相关API
老师告诉你能学到什么?
1、自定义控件如何处理与用户的交互 2、如何创建并动态更新Dialog 3、MediaRecorder的使用,实现录音功能 4、MediaPlayer的使用,实现播放功能 5、多个管理类对象间的交互与协作

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消