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

讲师回答 / hyman
检查下res下的资源文件有没有编写错误的。

讲师回答 / hyman
资源文件在视频右下角,代码可以自己编写。

最赞回答 / 嗷嗷飞
找到原因了,老师的代码并没有去处理这个异常if (isPrepared) {    try {        //maxLevel*mMediaRecorder.getMaxAmplitude() 1~32767        return maxLevel * mMediaRecorder.getMaxAmplitude() / 32768 + 1;    } catch (Exception e) {    }}return 1;

讲师回答 / hyman
视频右下脚可以下载素材。

讲师回答 / hyman
恩,这个异常我们是有预见性的,就是知道会出这个异常,但是不会影响这个案例的运行,注意捕获一下:<...code...>

讲师回答 / hyman
自定义的button继承自Button呀。本例中没有fragment,你说的是布局文件中button的父布局为什么是FrameLayout吧,对于相同的效果,如果FrameLayout和LinearLayout都可以实现,我会选择FrameLayout,因为效率会高一点。

讲师回答 / hyman
时间的消耗在long click 和  MediaRecorder.prepare的时间。

讲师回答 / hyman
你好,看完了你的代码没有发现问题,建议再次检查下布局文件和代码。

讲师回答 / hyman
两个构造方法是为了,支持用户在代码中new这个空间和在布局文件中使用;定义这些常量是为了表示该按钮的多个状态,这么做代码的可读性更高。

讲师回答 / hyman
正常情况下不会出现你所描述的问题,建议对着视频详细核对下代码。

讲师回答 / hyman
首先感谢你对慕课的支持,我详细查看了你贴出的代码,没有发现问题。根据你贴出的异常信息,出错是因为MediaRecorder的状态转移出现的问题,建议你还是根据log排查下,ps:记得使用真机测试。

讲师回答 / hyman
那是单例的一种典型的实现方式,如果不加同步,多线程的时候可能会生成多实例。
课程须知
本课程是基于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
提交
取消