课程名称:即时通讯项目里面的语音处理-基础实现篇
课程章节:2-1 Android-文件模式声音录制功能实现上
主讲老师:Piasy
课程内容:
今天学习内容有:
- ButterKnife的使用
- 录音的业务逻辑
- ExecutorService实际使用
课程收获:
- ButterKnife的使用
- gradle中引入ButterKnife包
- onCreate中BuggerKnife.Bind(this)
- 然后就可以通过注解使用XML中的view了
- 录音的业务逻辑
- 搭界面啥的就不说了
- 录音按键按下执行录音操作并更新UI
- 录音按键撒开执行结束录音操作并更新UI以及录音文件的保存
- ExecutorService的实际使用
由于录音JNI函数不是线程安全的,所以需要用单线程
- 在onCreate里初始化ExecutorService:
Executors.newSingleThreadExecutor()
- 在onDestory里进行销毁:
shutdownNow()
- 在要执行操作的地方使用:
mExecutorService.submit {}
- 代码结构如下
开始录音:
fun startRecord() {
// todo 后台录音
mExecutorService.submit {
// 释放之前录音的Recorder
releaseRecorder()
// 执行录音方法
if (!doStartRecord()){
showError()
}
}
}
结束录音
fun stopRecord() {
tvStatus.text = "结束录音"
// 提交后台任务,停止录音
mExecutorService.submit {
// todo 执行停止录音逻辑
if (!doStopRecord()){
showError()
}
}
}
释放MediaRecorder
fun releaseRecorder(){}
开始录音
fun doStartRecord():Boolean {
return true
}
停止录音
fun doStopRecord():Boolean {
return true
}
错误提示
fun showError(){}
备注:老师讲解的代码是用Java写的,我项目里使用的是kotlin,所以代码上会有差异,后续实现可能会用DataBinding替代ButterKnife;用协程替代ExecutorService
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦