You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.2 KiB
67 lines
1.2 KiB
<template>
|
|
<view :class="'audio-message ' + (isMine ? 'my-audio' : '')">
|
|
<image class="audio-icon" src=""></image><!-- ../../../static/static/images/audio-msg.png -->
|
|
<view class="audio " @click="handlePlayAudioMessage" :style="'width: ' + 120 + 'rpx'">{{ '" ' + message.payload.second }}</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
audio: {}
|
|
};
|
|
},
|
|
|
|
components: {},
|
|
props: {
|
|
message: {
|
|
type: Object,
|
|
default: () => {}
|
|
},
|
|
isMine: {
|
|
type: Boolean,
|
|
default: true
|
|
}
|
|
},
|
|
watch: {
|
|
message: {
|
|
handler: function(newVal) {
|
|
this.setData({
|
|
message: newVal
|
|
});
|
|
},
|
|
immediate: true,
|
|
deep: true
|
|
}
|
|
},
|
|
|
|
beforeMount() {
|
|
this.audio = uni.createInnerAudioContext();
|
|
this.audio.onPlay(() => {
|
|
console.log('开始播放');
|
|
});
|
|
this.audio.onEnded(() => {
|
|
console.log('停止播放');
|
|
});
|
|
this.audio.onError(e => {
|
|
console.error(e, 'onError');
|
|
// ios 音频播放无声,可能是因为系统开启了静音模式
|
|
uni.showToast({
|
|
icon: 'none',
|
|
title: '该音频暂不支持播放'
|
|
});
|
|
});
|
|
},
|
|
|
|
methods: {
|
|
handlePlayAudioMessage() {
|
|
this.audio.src = this.message.payload.url;
|
|
this.audio.play();
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
<style>
|
|
@import './index.css';
|
|
</style>
|
|
|