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

【学习打卡】第4天 即时通讯项目里面的语音处理-基础实现篇

标签:
Android

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

课程内容:

今天学习内容有:

  • 启动录音的逻辑
  • 错误提醒的逻辑
  • 结束录音的逻辑

课程收获:

  • 启动录音逻辑
private fun doStartRecord(): Boolean {
        return try {
            // 创建录音文件
            mAudioFile =
                File("${Environment.DIRECTORY_DOWNLOADS}/iMookDemo/${System.currentTimeMillis()}.m4a")
            mAudioFile.parentFile?.mkdir()
            mAudioFile.createNewFile()
            println(mAudioFile.absolutePath)
            // 配置MediaRecorder
            mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC)    // 从麦克风采集
            mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4)
            mMediaRecorder.setAudioSamplingRate(44100)  // "所有安卓系统都支持的采样频率"
            mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC)
            mMediaRecorder.setAudioEncodingBitRate(96000)       // 音质较好的频率
            mMediaRecorder.setOutputFile(mAudioFile.absolutePath)
            // 开始录音
            mMediaRecorder.prepare()
            mMediaRecorder.start()
            // 记录开始录音的时间,用于统计录音时长
            lStartRecordTime = System.currentTimeMillis()
            true
        } catch (e: Exception) {
            false
        }
    }
  • 结束录音逻辑
private fun doStopRecord(): Boolean {
        return try {
            // 停止录音
            mMediaRecorder.stop()
            // 记录停止时间
            val recordTime = System.currentTimeMillis() - lStartRecordTime
            val recordLength = recordTime / 1000
            // 只接受超过3秒的录音,在UI上显示出来
            if (recordLength > 3) {
                uiThread {
                    viewBinding.tvStatus.text = "录音成功 ${recordLength}秒"
                }
                return true
            } else {
                uiThread {
                    Toast.makeText(this@MainActivity, "录音小于3秒不记录", Toast.LENGTH_SHORT).show()
                }
                return false
            }
        } catch (e: Exception) {
            false
        }
    }

图片描述

图片描述

图片描述

图片描述

图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消