语音消息播放

This commit is contained in:
唐明明
2022-01-25 13:35:14 +08:00
parent 44dd3c3ccf
commit 7b773c47d5

View File

@@ -9,7 +9,7 @@
<!-- 文字消息 --> <!-- 文字消息 -->
<view class="chat-msg-text">{{ item.content.content }}</view> <view class="chat-msg-text">{{ item.content.content }}</view>
<!-- 语音消息 --> <!-- 语音消息 -->
<view class="chat-msg-audio"> <view class="chat-msg-audio" @click="onPlayMsg()">
<image v-if="item.messageDirection == 0" src="@/static/icon/audio_ green.png" mode="widthFix"></image> <image v-if="item.messageDirection == 0" src="@/static/icon/audio_ green.png" mode="widthFix"></image>
10" 10"
<image v-if="item.messageDirection == 1" src="@/static/icon/audio_white.png" mode="widthFix"></image> <image v-if="item.messageDirection == 1" src="@/static/icon/audio_white.png" mode="widthFix"></image>
@@ -75,7 +75,9 @@
}, },
importTabs: 0, importTabs: 0,
showAudioTranscribe:false, showAudioTranscribe:false,
transcribeTime: 60 transcribeTime: 60,
audioSrc: '',
audioContextPaused: true
} }
}, },
onLoad(e) { onLoad(e) {
@@ -111,6 +113,7 @@
// 监听录音结束 // 监听录音结束
recorderManager.onStop(res => { recorderManager.onStop(res => {
if(res.tempFilePath) this.audioSrc = res.tempFilePath
console.log('------------------获取到了录音的临时路径---------------') console.log('------------------获取到了录音的临时路径---------------')
console.log(res.tempFilePath) console.log(res.tempFilePath)
}) })
@@ -153,7 +156,21 @@
} }
}, },
methods: { methods: {
// 检查录制权限 // 播放语音消息
onPlayMsg(){
let innerAudioContext = uni.createInnerAudioContext()
innerAudioContext.src = this.audioSrc
if(this.audioContextPaused){
innerAudioContext.play()
this.audioContextPaused = false
return
}
innerAudioContext.stop()
innerAudioContext.onStop(resStop => {
this.audioContextPaused = true
})
},
// 检查安卓录制权限
async getAndroidPermission(){ async getAndroidPermission(){
return await permision.requestAndroidPermission('android.permission.RECORD_AUDIO') return await permision.requestAndroidPermission('android.permission.RECORD_AUDIO')
}, },
@@ -164,7 +181,6 @@
// 录制语音消息 // 录制语音消息
startAudio(e){ startAudio(e){
this.getAndroidPermission().then(code => { this.getAndroidPermission().then(code => {
console.log(code)
switch (code){ switch (code){
case 1: case 1:
this.showAudioTranscribe = true this.showAudioTranscribe = true