录制语音消息的按钮(VoiceButton)

最近项目中有发送语音消息的需求,需要实现一个类似微信录制并发送语音的按钮,为了避免重复造轮子已发布到了jcenter,希望可以方便部分有同样需求的朋友或者提供一些参考。


开源地址:VoiceButton

使用效果图:

环境

  • androidx
  • kotlin

使用方法

1.添加权限
需要在AndroidManifest.xml文件中声明麦克风权限并在Android 6.0及以上版本中动态询问获取权限。


2.添加依赖
在模块的build.gradle文件中声明如下依赖

implementation 'com.lizhidan.voicebutton:voicebutton:1.0.1'

3.布局文件中定义控件
VoiceButton继承AppCompatButton可使用其所有属性进行自定义效果。


4.代码中使用

private lateinit var vbRecord: VoiceButton
...
vbRecord = findViewById(R.id.vb_record)
//自定义录音最大长度,默认60秒
vbRecord.setMaxRecordLength(20 * 1000)
vbRecord.setRecorderListener(object : RecorderListener {
    override fun onStart() {
        Log.d(TAG, "开始(触发)本次录音,可能会因为录音时间太短取消本次录音")
    }

    override fun onFinish(
            time: Long,
            filePath: String?
    ) {
        Log.d(TAG,  "完成了本次录音")
        recoderAdapter!!.addData(RecorderInfo(time, filePath!!))
    }
})

具体可参考项目中的示例

你可能感兴趣的:(录制语音消息的按钮(VoiceButton))