继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

循序渐进陈易寒
关注TA
已关注
手记 11
粉丝 1
获赞 1

课程名称:即时通讯项目里面的语音处理-基础实现篇
课程章节: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
        }
    }

图片描述

图片描述

图片描述

图片描述

图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP