亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【學習打卡】第3天 即時通訊項目里面的語音處理-基礎實現篇

標簽:
Android

课程名称:即时通讯项目里面的语音处理-基础实现篇
课程章节:2-1 Android-文件模式声音录制功能实现上
主讲老师:Piasy

课程内容:

今天学习内容有:

  • ButterKnife的使用
  • 录音的业务逻辑
  • ExecutorService实际使用

课程收获:

  • ButterKnife的使用
  1. gradle中引入ButterKnife包
  2. onCreate中BuggerKnife.Bind(this)
  3. 然后就可以通过注解使用XML中的view了
  • 录音的业务逻辑
  1. 搭界面啥的就不说了
  2. 录音按键按下执行录音操作并更新UI
  3. 录音按键撒开执行结束录音操作并更新UI以及录音文件的保存
  • ExecutorService的实际使用

由于录音JNI函数不是线程安全的,所以需要用单线程

  1. 在onCreate里初始化ExecutorService:Executors.newSingleThreadExecutor()
  2. 在onDestory里进行销毁:shutdownNow()
  3. 在要执行操作的地方使用: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人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消