audioFour.vue 973 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <template>
  2. <view @click="handlePlay" class="yj-block-item">
  3. <view class="item-top">{{YItem.cigen}}</view>
  4. <view class="item-bottom">{{YItem.yinbiao}}</view>
  5. </view>
  6. </template>
  7. <script setup>
  8. // yinjie
  9. import {
  10. reactive,
  11. computed,
  12. onUnmounted
  13. } from 'vue';
  14. import {
  15. onLoad
  16. } from "@dcloudio/uni-app"
  17. const props = defineProps({
  18. YItem: {
  19. type: Object,
  20. },
  21. })
  22. const emits = defineEmits(['play-audio'])
  23. const data = reactive({
  24. code: null
  25. })
  26. onLoad(() => {
  27. uni.$on('danci-audio-ended', (code) => {
  28. data.isPlaying = false;
  29. })
  30. uni.$on('danci-audio-play', (code) => {
  31. if (data.code == code) {
  32. data.isPlaying = true;
  33. } else {
  34. data.isPlaying = false;
  35. }
  36. })
  37. })
  38. onUnmounted(() => {
  39. uni.$off('danci-audio-ended')
  40. uni.$off('danci-audio-play')
  41. })
  42. function handlePlay() {
  43. data.code = new Date().getTime()
  44. emits('play-audio', {
  45. url: props.YItem.yinpin,
  46. code: data.code
  47. })
  48. }
  49. </script>
  50. <style>
  51. </style>