[vue3]audio音乐进度条(二)跟随播放进度

/ 7,819评论 / 30231阅读 / 2点赞

上一期我们介绍了外观设计,这把我们聊聊让进度条跟随播放进度走

预期效果


准备


实现

<div id="root_div" class="cmusic_displayFlex_class" style="height:150px;justify-content:space-between;align-items: center;">
    <!-- 音频 -->
    <audio id="cmusic_audio" ref="cmusic_audio" controls muted
        @timeupdate="audio_lengthChange()" :src="url_audio">
    </audio>

    <span id="cmusic_control_span_progressBar">
        <div class="cmusic_displayFlex_class cmusic_control_progress_div" style="flex-direction: row;">
            <span id="cmusic_control_span_loadProgress" :style="cmusic_control_loadProgress_style"></span>
            <span id="cmusic_control_span_progress" :style="cmusic_control_progress_style"></span>
        </div>
    </span>
<div>
<style>
/*外框*/
#cmusic_control_span_progressBar{
    border-radius: 50px;
    height: 20px;
    width: 100%;
    display: inline-flex;
    align-items: center;
    position: relative;
    background: transparent;
    box-shadow: inset 2px 2px 4px #bcc5d6,
        inset -2px -2px 5px #feffff;
    border: 2px solid #d0f4ff;
    justify-content: center;
    transition: all 0.8s ease;
}
/*布局类*/
.cmusic_displayFlex_class {
    width: 100%;
    display: flex;
    flex-direction: column;
    margin-left: auto;
    margin-right: auto;
}
.cmusic_control_progress_div {
    position:absolute;
    width:94% !important;
    height:100%;
    align-items: center;
}
/*进度条*/
#cmusic_control_span_progress,
#cmusic_control_span_loadProgress{
    background: linear-gradient(90deg, #c4f4fe, #66ccff);
    border-radius: 50px;
    position: absolute;
    width:100%;
    height: 60%;
    pointer-events: none;
    transition: width 0.5s ease;
    box-shadow: 2px 2px 10px #ccd3ff,
    -2px -2px 10px #ccd3ff;
}
/*加载进度条*/
#cmusic_control_span_loadProgress {
    background: linear-gradient(90deg, #abecd6, #fff9d2);
}
</style>
<!-- 引入vue -->
<script src="https://unpkg.com/vue@3.2.33"></script>
<script>
const { createApp } = Vue

var cmusic_json = {
    //数据
    data() {
        return {
            url_audio:"https://blog.coolight.cool/wp-content/uploads/2022/05/大喜_洛天依.m4a",
            cmusic_control_loadProgress_style:"width:80%",
            cmusic_control_progress_style:"width:50%"
        }
    },
    //函数
    methods:{
        //监听播放时长,修改进度条长度
        audio_lengthChange:function(){
            let caudio = this.$refs.cmusic_audio;
            //duration是音频总时长
            //如果音频元数据加载完成,才能获得其总时长,后续才能进行计算
            if (!isNaN(caudio.duration)){
                this.cmusic_control_progress_style = "width:" + (parseInt(caudio.currentTime / caudio.duration * 100)).toString() + "%;";
            }else{
                this.cmusic_control_progress_style = "width:0%;";
            }
        }
    }
};

var cmusic_app = Vue.createApp(cmusic_json);
var cmusic_vue = cmusic_app.mount("#root_div");
</script>
  1. Тут можно преобрести взломостойкие сейфы купить взломостойкий сейф

  2. Тут можно преобрести купить сейф взломостойкий в москве вломостойкие сейфы

  3. SamuelDarse说道:

    can you buy prednisone: Predni Best – prednisone 50 mg tablet canada

  4. KennethCex说道:

    cost of prednisone 5mg tablets Predni Best prednisone 5 mg tablet without a prescription

  5. SamuelDarse说道:

    antibiotics cipro: CiPharmDelivery – buy ciprofloxacin over the counter

  6. RobertInpup说道:

    antibiotic amoxicillin: Amox Star – amoxicillin without a prescription

  7. KennethCex说道:

    amoxicillin price without insurance Amox Star where can i get amoxicillin

  8. Здесь можно сейфы для дома доставка купить сейф для дома

  9. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт телефонов honor адреса, можете посмотреть на сайте: ремонт телефонов honor в москве
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  10. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт телефонов infinix адреса, можете посмотреть на сайте: ремонт телефонов infinix адреса
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  11. Danielplent说道:

    http://amoxstar.com/# amoxicillin 750 mg price

  12. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт телефонов honor в москве, можете посмотреть на сайте: срочный ремонт телефонов honor
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  13. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт телефонов infinix адреса, можете посмотреть на сайте: ремонт телефонов infinix рядом
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  14. SamuelDarse说道:

    cipro for sale: buy cipro online usa – ciprofloxacin order online

  15. KennethCex说道:

    cost of generic clomid without dr prescription clomid on pharm buy generic clomid without insurance

  16. Danielplent说道:

    https://clomidonpharm.com/# where can i get generic clomid without rx

  17. SamuelDarse说道:

    purchase cipro: where can i buy cipro online – п»їcipro generic

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注