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

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


开源地址:VoiceButton

使用效果图:

环境

  • androidx
  • kotlin

使用方法

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

<uses-permission android:name="android.permission.RECORD_AUDIO" />

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

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

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

<com.lizhidan.voicebutton.VoiceButton
        android:id="@+id/vb_record"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="长按录音" />

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!!))
    }
})

具体可参考项目中的示例

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。