zoukankan      html  css  js  c++  java
  • vue的keepalive,后台播放音乐?

    vue的keep-alive,是否能做到后台播放音视乐?

    答案当然是不能。
    因为处于失活状态的组件,其真实dom已经从页面移除了,只将其存放到了内存中。
    dom都不存在了,还播放啥。

    能做什么?

    顶多能做到“回到这个页面的时候,我还能做到继续从之前的位置自动播放”

    <template>
      <div class="home">
        <audio
          ref="myAudio"
          controls
          @play="onPlay"
          @pause="onPause"
          src="https://dshvv-1300009960.cos.ap-beijing.myqcloud.com/aegis/xby.mp3"
        ></audio>
      </div>
    </template>
    
    <script setup>
    import { onActivated, onDeactivated, ref } from "vue";
    
    const myAudio = ref(null); // 音频dom
    const auStatus = ref(false); // 记录离开页面时候音频播放状态
    const cmpLiveStatus = ref(true); // 当前页面live状态
    
    // 播放回调
    const onPlay = () => {
      auStatus.value = true;
    }
    
    // 暂停回调
    const onPause = () => {
      if (cmpLiveStatus.value) {
        auStatus.value = false
      }
    }
    
    // 回到页面的时候,如果音频上次是播放状态,则自动续播
    onActivated(() => {
      console.log("激活了", auStatus.value);
      cmpLiveStatus.value = true;
      if (auStatus.value) {
        myAudio.value.play();
      }
    });
    
    onDeactivated(() => {
      console.log("失活了");
      cmpLiveStatus.value = false;
    })
    </script>
    
  • 相关阅读:
    Yum源的优先级
    history设置时间戳
    ntopng网络流量实时监控
    Filezilla开源FTP传输工具
    红黑树从头至尾插入和删除结点的全程演示图
    清晰理解红黑树的演变---红黑的含义
    ConcurrentHashMap的JDK1.8实现
    linux常用命令
    Java类加载过程
    MySQL存储引擎--MyISAM与InnoDB区别
  • 原文地址:https://www.cnblogs.com/dshvv/p/15689889.html
Copyright © 2011-2022 走看看