第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

【學(xué)習(xí)打卡】第3天 即時(shí)通訊項(xiàng)目里面的語音處理-基礎(chǔ)實(shí)現(xiàn)篇

標(biāo)簽:
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

图片描述

图片描述

图片描述

图片描述

图片描述

點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

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

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報(bào)

0/150
提交
取消