<template>
  <div class="audio-page">
    <div class="content" v-if="showObj.audio">
      <audio ref="audio" @durationchange="canPlay" @play="playing()" :src="showObj.audio[index].url"></audio>
      <div class="hp-left">
        <div class="hp-top">
          <div class="image-block" @click="imgPop=true">
            <img :src="showObj.audio[index].image">
          </div>
          <div>
            <div class="title-block">
              <div class="title">
                {{showObj.audio[index].title}}
              </div>
              <div class="tips">
                {{showObj.audio[index].tips}}
              </div>
            </div>
            <div class="btn-group hp">
              <i class="playImage list" @click="popupVisible=!popupVisible"></i>
              <i class="playImage last" @click="lastOne()"></i>
              <i class="playImage play" v-if="!playFlag" @click="onPlay"></i>
              <i class="playImage stop" v-if="playFlag" @click="onStop"></i>
              <i class="playImage next" @click="nextOne()"></i>
              <i :class="{playImage:true,replay:playType===1,replayAll:playType===0,listPlay:playType==2}" @click="changeType()"></i>
            </div>
          </div>
        </div>
        <div class="range-block">
          <div class="time-block">
            <div class="left-time">{{startTime}}</div>
            <div class="right-time">{{overTime}}</div>
          </div>
          <input type="range" min="0" :max="offset" v-model="range" :style="{backgroundSize:`${offset?range/offset*100:0}% 100%`}"/>
        </div>
      </div>
      <div class="btn-group">
        <i class="playImage toBig" @click="imgPop=true;sendConsole('放大图片')"></i>
        <i class="playImage list" @click="popupVisible=!popupVisible;sendConsole('展开列表')"></i>
        <i class="playImage last" @click="lastOne()"></i>
        <i class="playImage play" v-if="!playFlag" @click="onPlay(true)"></i>
        <i class="playImage stop" v-if="playFlag" @click="onStop(true)"></i>
        <i class="playImage next" @click="nextOne(true)"></i>
        <i :class="{playImage:true,replay:playType===1,replayAll:playType===0,listPlay:playType==2}" @click="changeType()"></i>
        <i :class="{playImage:true,collectDefault:!hasCollect,collect:!!hasCollect}" @click="changeCollect"></i>
      </div>
      <div class="btn-block">
        <div v-if="contentData.content.age" class="age-block" @click="ageShow = !ageShow">
          <div v-if="contentData.age === 1">0-3岁<i class="playImage _154722344142123489"></i></div>
          <div v-if="contentData.age === 2">4-6岁<i class="playImage _154722344142123489"></i></div>
        </div>
        <div class="age-change-block" v-show="ageShow" v-if="contentData.content.age">
          <div @click="contentData.age = 1;sendConsole('选择分龄')">0-3岁<i class="playImage _282918034425091245" v-if="contentData.age === 1"></i></div>
          <div @click="contentData.age = 2;sendConsole('选择分龄')">4-6岁<i class="playImage _282918034425091245" v-if="contentData.age === 2"></i></div>
        </div>
        <div v-if="showObj.change" class="change-block-HP" @click="contentData.type = 'video';sendConsole('切换视频教学')">
          <div class="">
            <img :src="tapToVideo"/>
          </div>
        </div>
        <div v-if="showObj.change" class="change-block">
          <div @click="contentData.type = 'video';sendConsole('切换视频教学')">视频教学</div>
          <div class="active" >音频教学</div>
        </div>
      </div>
    </div>
    <mt-popup
      v-model="popupVisible"
      position="bottom" style="background: transparent">
      <div class="list-popup"  v-if="showObj.audio">
        <div :class="{'list-block':true,active:i=== index}" v-for="(data,i) in this.showObj.audio" @click="changeIndex(i);sendConsole('列表选择音频')">
          {{data.title}}
          <i :class="{playImage:true,zDefaultIcon:i !== index,zIcon:i === index}"></i>
        </div>
        <div class="close-btn" @click="popupVisible=false">
          关闭
        </div>
      </div>
    </mt-popup>
    <mt-popup
      v-model="imgPop"
      style="background: transparent">
      <div class="imgPop-block"  v-if="showObj.audio">
        <img :src="showObj.audio[index].image"/>
      </div>
    </mt-popup>
    <guide-block/>
  </div>
</template>

<script>
  import { Toast } from 'mint-ui';
  import guideBlock from '../guide/audio'
  import tapToVideo from '../../assets/tapToVideo.png'
  import {getUserCollectApi,addUserCollectApi,delUserCollectApi} from "../../service/api";
  export default {
    name: "fun",
    props:[
      'contentData'
    ],
    components:{
      guideBlock
    },
    data(){
      return{
        popupVisible:false,
        collectPop:false,
        index:0,
        hasCollect:false,
        ageShow:false,
        imgPop:false,
        startTime:'00:00',
        overTime:'00:00',
        range:0,
        showObj:{
          audio:null,
          change:false
        },
        tapToVideo:tapToVideo,
        playFlag:false,
        offset:0,
        timer:null,
        playType:Number(localStorage.getItem('playType'))|0
      }
    },
    mounted(){
      this.changeAge(this.contentData.age);
      this.checkCollect();
    },
    methods:{
      sendConsole(data){
        this.$sa.track('watchClick',{
          buttonName:data,
          elementName:JSON.parse(localStorage.getItem('lessonDetail')).title,
          themeID:JSON.parse(localStorage.getItem('lessonDetail')).themeID,
          themeName:JSON.parse(localStorage.getItem('lessonDetail')).themeName,
          goodsID:JSON.parse(localStorage.getItem('lessonDetail')).goodsID,
          classID:JSON.parse(localStorage.getItem('lessonDetail')).classID,
          partName:this.contentData.partName,
          elementID:this.$route.query.elementId.toString(),
        });
      },
      // 改变收藏状态
      changeCollect(){
        if(this.hasCollect){
          // 神策埋点 点击操作
          this.$sa.track('watchClick',{
            elementName:JSON.parse(localStorage.getItem('lessonDetail')).title,
            themeID:JSON.parse(localStorage.getItem('lessonDetail')).themeID,
            themeName:JSON.parse(localStorage.getItem('lessonDetail')).themeName,
            goodsID:JSON.parse(localStorage.getItem('lessonDetail')).goodsID,
            classID:JSON.parse(localStorage.getItem('lessonDetail')).classID,
            buttonName:'取消收藏',
            partName:this.contentData.partName,
            elementID:this.$route.query.elementId.toString(),
          });
          delUserCollectApi(this.hasCollect).then(res=>{
            this.hasCollect = false;
            Toast('取消收藏');
            this.checkCollect()
          })
        }else{
          // 神策埋点 点击操作
          this.$sa.track('watchClick',{
            elementName:JSON.parse(localStorage.getItem('lessonDetail')).title,
            themeID:JSON.parse(localStorage.getItem('lessonDetail')).themeID,
            themeName:JSON.parse(localStorage.getItem('lessonDetail')).themeName,
            goodsID:JSON.parse(localStorage.getItem('lessonDetail')).goodsID,
            classID:JSON.parse(localStorage.getItem('lessonDetail')).classID,
            buttonName:'添加收藏',
            partName:this.contentData.partName,
            elementID:this.$route.query.elementId.toString(),
          });
          let lessonDetail = JSON.parse(localStorage.getItem('lessonDetail'));
          let json = {
            category_id:lessonDetail.id,
            type:1,
            title:this.showObj.audio[this.index].title,
            sub_title:'来自于 '+lessonDetail.title,
            url:this.showObj.audio[this.index].url,
            cover:this.showObj.audio[this.index].image
          };
          addUserCollectApi(json).then(res=>{
            Toast('收藏成功,快去主页磨耳朵看一看吧');
            this.checkCollect()
          }).catch(this.checkCollect())
        }
      },
      // 获取收藏状态
      checkCollect(){
        let json ={
          url:this.showObj.audio[this.index].url
        };
        getUserCollectApi(json).then(res=>{
          this.hasCollect = res.list.length<1? false : res.list[0].id
        })
      },
      // 播放音频
      onPlay(flag){
        if(flag){
          // 神策埋点 点击操作
          this.$sa.track('watchClick',{
            elementName:JSON.parse(localStorage.getItem('lessonDetail')).title,
            themeID:JSON.parse(localStorage.getItem('lessonDetail')).themeID,
            themeName:JSON.parse(localStorage.getItem('lessonDetail')).themeName,
            goodsID:JSON.parse(localStorage.getItem('lessonDetail')).goodsID,
            classID:JSON.parse(localStorage.getItem('lessonDetail')).classID,
            buttonName:'播放音频',
            partName:this.contentData.partName,
            elementID:this.$route.query.elementId.toString(),
          });
        }
        this.$refs.audio.play();
      },
      lastOne(){
        this.$sa.track('watchClick',{
          elementName:JSON.parse(localStorage.getItem('lessonDetail')).title,
          themeID:JSON.parse(localStorage.getItem('lessonDetail')).themeID,
          themeName:JSON.parse(localStorage.getItem('lessonDetail')).themeName,
          goodsID:JSON.parse(localStorage.getItem('lessonDetail')).goodsID,
          classID:JSON.parse(localStorage.getItem('lessonDetail')).classID,
          buttonName:'上一首',
          partName:this.contentData.partName,
          elementID:this.$route.query.elementId.toString(),
        });
        if(this.index > 0){
          this.index --;
          this.keepPlay()
        }else if(this.playType === 0 && this.showObj.audio.length > 1){
          this.index = this.showObj.audio.length-1;
          this.keepPlay()
        }else{
          Toast('已经是第一首');

        }
      },
      changeIndex(i){
        this.index = i;
        this.popupVisible = false;
        this.keepPlay()
      },
      keepPlay(){
        if(this.playFlag){
          this.$nextTick(()=>{
            this.onPlay()
          })
        }else{
          this.$nextTick(()=>{
            this.onStop()
          })
        }
      },
      nextOne(flag){
        if(flag){
          // 神策埋点 点击操作
          this.$sa.track('watchClick',{
            elementName:JSON.parse(localStorage.getItem('lessonDetail')).title,
            themeID:JSON.parse(localStorage.getItem('lessonDetail')).themeID,
            themeName:JSON.parse(localStorage.getItem('lessonDetail')).themeName,
            goodsID:JSON.parse(localStorage.getItem('lessonDetail')).goodsID,
            classID:JSON.parse(localStorage.getItem('lessonDetail')).classID,
            buttonName:'下一首',
            partName:this.contentData.partName,
            elementID:this.$route.query.elementId.toString(),
          });
        }
        if(this.index < this.showObj.audio.length-1){
          this.index ++;
          this.keepPlay()
        }else if(this.playType === 0 && this.showObj.audio.length > 1){
          this.index = 0;
          this.keepPlay()
        }else{
          Toast('已经是最后一首');
        }
      },
      // 音频准备就绪
      canPlay(){
        let audio = this.$refs.audio;
        this.offset = Math.ceil(parseInt(audio.duration)|0);
        this.$nextTick(()=>{
          this.getDuration()
        })
      },
      // 播放中方法
      playing(){
        let audio = this.$refs.audio;
        this.playFlag = true;
        this.timer = setInterval(() => {
          let min = null;
          if(parseInt(audio.currentTime / 60)<10){
            min = '0' + parseInt(audio.currentTime / 60)
          }else{
            min = parseInt(audio.currentTime / 60)
          }
          let sec = parseInt(audio.currentTime % 60);
          if (sec < 10) {
            sec = "0" + sec;
          }
          this.startTime = min + ':' + sec;   /*  00:00  */
          this.range = parseInt(audio.currentTime);
          if(this.range === this.offset && this.offset !== 0) {
            this.range=0;/*播放结束后进度条归零*/
            this.startTime='00:00'; /*播放结束后时间归零*/
            this.onOver();
            clearInterval(this.timer)
          }
        }, 1000)
      },
      // 暂停计时器
      stopTime(){
        clearInterval(this.timer);
      },
      // 获取音频总长度
      getDuration(){
        let min = null;
        if(this.offset === 0 ){
          this.overTime = '正在加载中...'
        }else{
          if(parseInt(this.offset / 60)<10){
            min = '0' + parseInt(this.offset / 60)
          }else{
            min = parseInt(this.offset / 60)
          }
          let sec = parseInt(this.offset % 60);
          if (sec < 10) {
            sec = "0" + sec;
          }
          this.overTime = min + ':' + sec;   /*  00:00  */
        }

      },
      // 播放暂停
      onStop(flag){
        if(flag){
          // 神策埋点 点击操作
          this.$sa.track('watchClick',{
            elementName:JSON.parse(localStorage.getItem('lessonDetail')).title,
            themeID:JSON.parse(localStorage.getItem('lessonDetail')).themeID,
            themeName:JSON.parse(localStorage.getItem('lessonDetail')).themeName,
            goodsID:JSON.parse(localStorage.getItem('lessonDetail')).goodsID,
            classID:JSON.parse(localStorage.getItem('lessonDetail')).classID,
            buttonName:'暂停播放',
            partName:this.contentData.partName,
            elementID:this.$route.query.elementId.toString(),
          });
        }
        this.$refs.audio.pause();
        this.playFlag = false
      },
      // 播放完毕
      onOver(){
        switch (this.playType) {
          case 0:
            if(this.index < this.showObj.audio.length-1){
              this.index++
            }else{
              this.index=0
            }
            this.$nextTick(()=>{
              this.onPlay()
            });
            break;
          case 1:
            this.range = 0;
            this.$nextTick(()=>{
              this.onPlay()
            });
            break;
          case 2:
            if(this.index < this.showObj.audio.length-1){
              this.index++;
              this.$nextTick(()=>{
                this.onPlay()
              });
            }else{
              this.index=0;
              this.$nextTick(()=>{
                this.onStop()
              });
            }
        }
      },
      // 改变循环状态
      changeType(){
        this.playType < 2 ? this.playType++ :this.playType =0;
        window.localStorage.setItem('playType',this.playType);
        switch (this.playType) {
          case 1:
            // 神策埋点 点击操作
            this.$sa.track('watchClick',{
              elementName:JSON.parse(localStorage.getItem('lessonDetail')).title,
              themeID:JSON.parse(localStorage.getItem('lessonDetail')).themeID,
              themeName:JSON.parse(localStorage.getItem('lessonDetail')).themeName,
              goodsID:JSON.parse(localStorage.getItem('lessonDetail')).goodsID,
              classID:JSON.parse(localStorage.getItem('lessonDetail')).classID,
              buttonName:'单曲循环',
              partName:this.contentData.partName,
              elementID:this.$route.query.elementId.toString(),
            });
            Toast('单曲循环');
            break;
          case 2:
            // 神策埋点 点击操作
            this.$sa.track('watchClick',{
              elementName:JSON.parse(localStorage.getItem('lessonDetail')).title,
              themeID:JSON.parse(localStorage.getItem('lessonDetail')).themeID,
              themeName:JSON.parse(localStorage.getItem('lessonDetail')).themeName,
              goodsID:JSON.parse(localStorage.getItem('lessonDetail')).goodsID,
              classID:JSON.parse(localStorage.getItem('lessonDetail')).classID,
              buttonName:'顺序播放',
              partName:this.contentData.partName,
              elementID:this.$route.query.elementId.toString(),
            });
            Toast('顺序播放');
            break;
          case 0:
            // 神策埋点 点击操作
            this.$sa.track('watchClick',{
              elementName:JSON.parse(localStorage.getItem('lessonDetail')).title,
              themeID:JSON.parse(localStorage.getItem('lessonDetail')).themeID,
              themeName:JSON.parse(localStorage.getItem('lessonDetail')).themeName,
              goodsID:JSON.parse(localStorage.getItem('lessonDetail')).goodsID,
              classID:JSON.parse(localStorage.getItem('lessonDetail')).classID,
              buttonName:'列表循环',
              partName:this.contentData.partName,
              elementID:this.$route.query.elementId.toString(),
            });
            Toast('列表循环');
            break
        }
      },
      changeAge(value){
        if(this.contentData.content.age && value === 2){
          this.showObj = {
            audio:this.contentData.content.audio2,
            change:this.contentData.content.change2
          }
        }else{
          this.showObj = {
            audio:this.contentData.content.audio,
            change:this.contentData.content.change
          }
        }
        this.playFlag = false;
        this.startTime='00:00';
        this.overTime='00:00'
      }
    },
    watch:{
      'contentData':{
        handler:function() {   //特别注意，不能用箭头函数，箭头函数，this指向全局
          this.changeAge(this.contentData.age);
          this.index = 0;
          this.checkCollect()
        },
        deep: true
      },
      'index'(value){
        this.checkCollect();
      },
      'range'(value,value2){
        let audio = this.$refs.audio;
        if(Math.abs(value - value2) > 2){
          this.timer = setInterval(() => {
            let min = null;
            if(parseInt(audio.currentTime / 60)<10){
              min = '0' + parseInt(audio.currentTime / 60)
            }else{
              min = parseInt(audio.currentTime / 60)
            }
            let sec = parseInt(audio.currentTime % 60);
            if (sec < 10) {
              sec = "0" + sec;
            }
            this.startTime = min + ':' + sec;   /*  00:00  */
            this.range = parseInt(audio.currentTime);
            if(this.range == this.offset && this.offset !== 0) {
              this.range=0;/*播放结束后进度条归零*/
              this.startTime='00:00'; /*播放结束后时间归零*/
              this.onOver();
              clearInterval(this.timer)
            }
          }, 1000);
          audio.currentTime = value;
        }
      }
    },
  }
</script>

<style scoped lang="less">
  @import "../../util/public";
  .playImage{background:url('https://static-cdn.changchangenglish.com/new-sing/static/images/imgPlayAudio.png')  no-repeat;background-size:40*@toVw 290*@toVw;display: inline-block}
  ._282918034425091245{height:8*@toVw;width:9*@toVw;background-position:0 0;}
  ._154722344142123489{height:5*@toVw;width:9*@toVw;background-position:0 -8*@toVw;vertical-align: bottom}
  .next{height:16*@toVw;width:16*@toVw;background-position:0 -13*@toVw;}
  .listPlay{height:16*@toVw;width:16*@toVw;background-position:0 -29*@toVw;}
  .replay{height:16*@toVw;width:16*@toVw;background-position:0 -45*@toVw;}
  .toBig{height:16*@toVw;width:16*@toVw;background-position:0 -61*@toVw;}
  .replayAll{height:16*@toVw;width:16*@toVw;background-position:0 -77*@toVw;}
  .collectDefault{height:16*@toVw;width:16*@toVw;background-position:0 -93*@toVw;}
  .collect{height:16*@toVw;width:16*@toVw;background-position:0 -109*@toVw;}
  .last{height:16*@toVw;width:16*@toVw;background-position:0 -125*@toVw;}
  .list{height:16*@toVw;width:16*@toVw;background-position:0 -141*@toVw;}
  .close{height:17*@toVw;width:17*@toVw;background-position:0 -157*@toVw;}
  .zDefaultIcon{height:18*@toVw;width:18*@toVw;background-position:0 -174*@toVw;float: right}
  .zIcon{height:18*@toVw;width:18*@toVw;background-position:0 -192*@toVw;float: right;}
  .play{height:40*@toVw;width:40*@toVw;background-position:0 -210*@toVw;}
  .stop{height:40*@toVw;width:40*@toVw;background-position:0 -250*@toVw;}
  .collect-block{
    padding: 10*@toVw;
    border-radius: 4*@toVw;
    background: white;
  }
  .content{
    background: white;
    width: 315*@toVw;
    position: absolute;
    top: 80*@toVw;
    left: 20*@toVw;
    right: 20*@toVw;
    bottom: 20*@toVw;
    overflow: auto;
    margin: auto;
    display: block;
    border-radius: 8*@toVw;
    text-align: center;
    padding: 10*@toVw;
    .image-block{
      width: 188*@toVw;
      height: 188*@toVw;
      margin-top: 20*@toVw;
      box-shadow: 0 0 30*@toVw 5*@toVw #ddd;
      overflow: hidden;
      border-radius: 8*@toVw;
      img{
        width: 100%;
      }
    }
    .title-block{
      margin-top: 24*@toVw;
      .title{
        font-size:16*@toVw;
        font-family:PingFang-SC-Medium;
        font-weight:500;
        color:rgba(102,102,102,1);
      }
      .tips{
        font-size:14*@toVw;
        margin-top: 6*@toVw;
        font-family:PingFang-SC-Medium;
        font-weight:500;
        color:rgba(153,153,153,1);
      }
    }
    .range-block{
      width: 250 * @toVw;
      margin-top: 16*@toVw;
      .time-block{
        font-size:12*@toVw;
        font-family:PingFang-SC-Medium;
        font-weight:500;
        color:rgba(102,102,102,1);
        text-align: left;
        &:after{
          content: '';
          display: block;

          clear: both;
        }
        .left-time{
          float: left;
        }
        .right-time{
          float: right;
        }
      }
      input[type=range] {
        -webkit-transform: translateZ(0);
        transform: translateZ(0);
        -webkit-appearance: none;
        background: -webkit-linear-gradient(#49E2A5, #49E2A5) no-repeat,#D8D8D8;
        background-size: 75% 100%;/*设置左右宽度比例*/
        width: 100%;
        border-radius: 10*@toVw; /*这个属性设置使填充进度条时的图形为圆角*/
      }
      input[type=range]::-webkit-slider-thumb {
        -webkit-appearance: none;
      }
      input[type=range]::-webkit-slider-runnable-track {
        height: 4*@toVw;
        border-radius: 2*@toVw ;
      }
      input[type=range]:focus {
        outline: none;
      }
      input[type=range]::-webkit-slider-thumb {
        -webkit-appearance: none;
        border-radius: 50%; /*外观设置为圆形*/
        height: 16*@toVw;
        width:  16*@toVw;
        margin-top: -6*@toVw; /*使滑块超出轨道部分的偏移量相等*/
        background: #49E2A5;
      }
    }
    .btn-group{
      margin-top: 30*@toVw;
      width: 280*@toVw;
      display: flex;
      &.hp{
        display: none;
      }
    }
  }
  .list-popup{
    width: 375*@toVw;
    max-height: 345*@toVw;
    overflow: auto;
    border-radius: 8*@toVw 8*@toVw 0 0;
    background: white;
    padding-top: 20*@toVw;
    .list-block{
      display: block;
      width: auto;
      margin: 0 20*@toVw;
      padding:12*@toVw 36*@toVw;
      border-bottom: 1*@toVw solid #dddddd;
      &.active{
        color: #49E2A5;
      }
    }
    .close-btn{
      text-align: center;
      padding: 20*@toVw;
    }
  }
  .imgPop-block{
    max-height: 500*@toVw;
    overflow: auto;
    img{
      max-width: 300*@toVw;
    }
  }
  .btn-block{
    position: relative;
    margin-top: 28*@toVw;
    text-align: center;
    .age-block{
      height: 28*@toVw;
      line-height: 28*@toVw;
      border: 1*@toVw solid #666;
      position: absolute;
      padding: 0 13*@toVw;
      border-radius: 100*@toVw;
      font-size:12*@toVw;
      font-family:PingFang-SC-Medium;
      font-weight:500;
      color:rgba(102,102,102,1);
    }
    .age-change-block{
      position: absolute;
      top: 37*@toVw;
      left: 0;
      width: 66*@toVw;
      border-radius: 8*@toVw;
      border: 1*@toVw solid #666666;
      font-size:12*@toVw;
      font-family:PingFang-SC-Medium;
      font-weight:500;
      color:rgba(102,102,102,1);
      &>div{
        padding: 6*@toVw 11*@toVw;
        text-align: left;
        &:first-child{
          border-bottom: 1*@toVw solid #eee;
        }
      }
    }
    .change-block{
      border-radius: 1000*@toVw;
      width: 144*@toVw;
      border:1*@toVw solid #40A9FF;
      &:after{
        content: '';
        display: block;
        clear: both;
      }
      div{
        float: left;
        width: 50%;
        border-radius: 100*@toVw;
        font-size:12*@toVw;
        height: 28*@toVw;
        line-height: 28*@toVw;
        font-family:PingFang-SC-Medium;
        font-weight:500;
        color:rgba(204,204,204,1);
        &.active{
          background: #40A9FF;
          color: white;
        }
      }
    }
  }
  .change-block-HP{
    display: none;
  }

  @media screen and (orientation: landscape) {
    @toVw:100/667vw;
    .playImage{background:url('https://static-cdn.changchangenglish.com/new-sing/static/images/playImage.png?v=2')  no-repeat;background-size:40*@toVw 225*@toVw;display: inline-block}
    ._154722344142123489{height:5*@toVw;width:9*@toVw;background-position:0 0;}
    ._282918034425091245{height:8*@toVw;width:9*@toVw;background-position:0 -4*@toVw;vertical-align: bottom}
    .last{height:16*@toVw;width:16*@toVw;background-position:0 -13*@toVw;}
    .listPlay{height:16*@toVw;width:16*@toVw;background-position:0 -29*@toVw;}
    .replay{height:16*@toVw;width:16*@toVw;background-position:0 -45*@toVw;}
    .next{height:16*@toVw;width:16*@toVw;background-position:0 -61*@toVw;}
    .replayAll{height:16*@toVw;width:16*@toVw;background-position:0 -77*@toVw;}
    .list{height:16*@toVw;width:16*@toVw;background-position:0 -93*@toVw;}
    .zDefaultIcon{height:18*@toVw;width:18*@toVw;background-position:0 -109*@toVw; float: right}
    .zIcon{height:18*@toVw;width:18*@toVw;background-position:0 -127*@toVw;; float: right}
    .play{height:40*@toVw;width:40*@toVw;background-position:0 -145*@toVw;}
    .stop{height:40*@toVw;width:40*@toVw;background-position:0 -185*@toVw;}

    .audio-page{
      position: absolute;
      top: 5*@toVw;
      bottom: 5*@toVw;
      left: 5*@toVw;
      right: 5*@toVw;
      overflow: auto;
      border-radius:8*@toVw;
      .content{
        position: static;
        height: 100%;
        width: 100%;
        display: flex;
        border-radius: 8*@toVw;
        padding: 0;
        .hp-left{
          flex: 1;
          margin-right: 20*@toVw;
          .hp-top{
            display: flex;
            width: 100%;
          }
        }
        .image-block{
          width: 150*@toVw;
          height: 150*@toVw;
          box-shadow: 0 0 30*@toVw 5*@toVw #ddd;
          overflow: hidden;
          display: block;
          margin: auto;
          border-radius: 8*@toVw;
          img{
            width: 100%;
          }
        }
        .title-block{
          margin-top: 24*@toVw;
          .title{
            font-size:16*@toVw;
            font-family:PingFang-SC-Medium;
            font-weight:500;
            color:rgba(102,102,102,1);
          }
          .tips{
            font-size:14*@toVw;
            margin-top: 6*@toVw;
            font-family:PingFang-SC-Medium;
            font-weight:500;
            color:rgba(153,153,153,1);
          }
        }
        .range-block{
          width: auto;
          margin-top: 16*@toVw;
          .time-block{
            font-size:12*@toVw;
            font-family:PingFang-SC-Medium;
            font-weight:500;
            color:rgba(102,102,102,1);
            text-align: left;
            &:after{
              content: '';
              display: block;
              clear: both;
            }
            .left-time{
              float: left;
            }
            .right-time{
              float: right;
            }
          }
          input[type=range] {
            -webkit-transform: translateZ(0);
            transform: translateZ(0);
            -webkit-appearance: none;
            background: -webkit-linear-gradient(#49E2A5, #49E2A5) no-repeat,#D8D8D8;
            background-size: 75% 100%;/*设置左右宽度比例*/
            width: 100%;
            border-radius: 10*@toVw; /*这个属性设置使填充进度条时的图形为圆角*/
          }
          input[type=range]::-webkit-slider-thumb {
            -webkit-appearance: none;
          }
          input[type=range]::-webkit-slider-runnable-track {
            height: 4*@toVw;
            border-radius: 2*@toVw ;
          }
          input[type=range]:focus {
            outline: none;
          }
          input[type=range]::-webkit-slider-thumb {
            -webkit-appearance: none;
            border-radius: 50%; /*外观设置为圆形*/
            height: 16*@toVw;
            width:  16*@toVw;
            margin-top: -6*@toVw; /*使滑块超出轨道部分的偏移量相等*/
            background: #49E2A5;
          }
        }
        .btn-group{
          margin-top: 15vh;
          display: none;
          width: 200*@toVw;
          &.hp{
            display: flex;
          }
        }
      }
      .list-popup{
        width: 375*@toVw;
        max-height: 345*@toVw;
        overflow: auto;
        border-radius: 8*@toVw 8*@toVw 0 0;
        background: white;
        padding-top: 20*@toVw;
        .list-block{
          display: block;
          width: auto;
          margin: 0 20*@toVw;
          padding:12*@toVw 36*@toVw;
          border-bottom: 1*@toVw solid #dddddd;
          &.active{
            color: #49E2A5;
          }
        }
        .close-btn{
          text-align: center;
          padding: 20*@toVw;
        }
      }
      .imgPop-block{
        max-height: 500*@toVw;
        overflow: auto;
        img{
          max-width: 300*@toVw;
        }
      }
      .btn-block{
        position:relative;
        min-width:90*@toVw ;
        margin-top: 0;
        display: block;
        height: 100%;
        .age-block{
          display: block;
          position: static;
          padding: 0;
          height: 28*@toVw;
          width: 88*@toVw;
          line-height: 28*@toVw;
          border: 1*@toVw solid #666;
          border-radius: 100*@toVw;
          font-size:12*@toVw;
          font-family:PingFang-SC-Medium;
          font-weight:500;
          color:rgba(102,102,102,1);
        }
        .age-change-block{
          position: static;
          width: 80*@toVw;
          margin-top: 10*@toVw;
          border-radius: 8*@toVw;
          border: 1*@toVw solid #666666;
          font-size:12*@toVw;
          font-family:PingFang-SC-Medium;
          font-weight:500;
          color:rgba(102,102,102,1);
          &>div{
            padding: 6*@toVw 11*@toVw;
            text-align: left;
            &:first-child{
              border-bottom: 1*@toVw solid #eee;
            }
          }
        }
        .change-block-HP{
          position: absolute;
          top: ~"calc(100vh - 12.5vw)";
          display: block;
          width: 78*@toVw;
          img{
            width: 100%;
          }
        }
        .change-block{
          display: none;
        }
      }
    }
  }
  @media screen and (min-aspect-ratio: ~"20/8"){
    @toVw:100/900vw;
    .playImage{background:url('https://static-cdn.changchangenglish.com/new-sing/static/images/playImage.png?v=2')  no-repeat;background-size:40*@toVw 225*@toVw;display: inline-block}
    ._154722344142123489{height:5*@toVw;width:9*@toVw;background-position:0 0;}
    ._282918034425091245{height:8*@toVw;width:9*@toVw;background-position:0 -4*@toVw;vertical-align: bottom}
    .last{height:16*@toVw;width:16*@toVw;background-position:0 -13*@toVw;}
    .listPlay{height:16*@toVw;width:16*@toVw;background-position:0 -29*@toVw;}
    .replay{height:16*@toVw;width:16*@toVw;background-position:0 -45*@toVw;}
    .next{height:16*@toVw;width:16*@toVw;background-position:0 -61*@toVw;}
    .replayAll{height:16*@toVw;width:16*@toVw;background-position:0 -77*@toVw;}
    .list{height:16*@toVw;width:16*@toVw;background-position:0 -93*@toVw;}
    .zDefaultIcon{height:18*@toVw;width:18*@toVw;background-position:0 -109*@toVw; float: right}
    .zIcon{height:18*@toVw;width:18*@toVw;background-position:0 -127*@toVw;; float: right}
    .play{height:40*@toVw;width:40*@toVw;background-position:0 -145*@toVw;}
    .stop{height:40*@toVw;width:40*@toVw;background-position:0 -185*@toVw;}

    .audio-page{
      position: absolute;
      top: 5*@toVw;
      bottom: 5*@toVw;
      left: 5*@toVw;
      right: 5*@toVw;
      overflow: auto;
      border-radius:8*@toVw;
      .content{
        position:static;
        height: 100%;
        width: 100%;
        display: flex;
        border-radius: 8*@toVw;
        padding: 0;
        .hp-left{
          flex: 1;
          margin-right: 20*@toVw;
          .hp-top{
            display: flex;
            width: 100%;
          }
        }
        .image-block{
          width: 150*@toVw;
          height: 150*@toVw;
          box-shadow: 0 0 30*@toVw 5*@toVw #ddd;
          overflow: hidden;
          display: block;
          margin: auto;
          border-radius: 8*@toVw;
          img{
            width: 100%;
          }
        }
        .title-block{
          margin-top: 24*@toVw;
          .title{
            font-size:16*@toVw;
            font-family:PingFang-SC-Medium;
            font-weight:500;
            color:rgba(102,102,102,1);
          }
          .tips{
            font-size:14*@toVw;
            margin-top: 6*@toVw;
            font-family:PingFang-SC-Medium;
            font-weight:500;
            color:rgba(153,153,153,1);
          }
        }
        .range-block{
          width: auto;
          margin-top: 16*@toVw;
          .time-block{
            font-size:12*@toVw;
            font-family:PingFang-SC-Medium;
            font-weight:500;
            color:rgba(102,102,102,1);
            text-align: left;
            &:after{
              content: '';
              display: block;
              clear: both;
            }
            .left-time{
              float: left;
            }
            .right-time{
              float: right;
            }
          }
          input[type=range] {
            -webkit-transform: translateZ(0);
            transform: translateZ(0);
            -webkit-appearance: none;
            background: -webkit-linear-gradient(#49E2A5, #49E2A5) no-repeat,#D8D8D8;
            background-size: 75% 100%;/*设置左右宽度比例*/
            width: 100%;
            border-radius: 10*@toVw; /*这个属性设置使填充进度条时的图形为圆角*/
          }
          input[type=range]::-webkit-slider-thumb {
            -webkit-appearance: none;
          }
          input[type=range]::-webkit-slider-runnable-track {
            height: 4*@toVw;
            border-radius: 2*@toVw ;
          }
          input[type=range]:focus {
            outline: none;
          }
          input[type=range]::-webkit-slider-thumb {
            -webkit-appearance: none;
            border-radius: 50%; /*外观设置为圆形*/
            height: 16*@toVw;
            width:  16*@toVw;
            margin-top: -6*@toVw; /*使滑块超出轨道部分的偏移量相等*/
            background: #49E2A5;
          }
        }
        .btn-group{
          margin-top: 15vh;
          display: none;
          width: 200*@toVw;
          &.hp{
            display: flex;
          }
        }
      }
      .list-popup{
        width: 375*@toVw;
        max-height: 345*@toVw;
        overflow: auto;
        border-radius: 8*@toVw 8*@toVw 0 0;
        background: white;
        padding-top: 20*@toVw;
        .list-block{
          display: block;
          width: auto;
          margin: 0 20*@toVw;
          padding:12*@toVw 36*@toVw;
          border-bottom: 1*@toVw solid #dddddd;
          &.active{
            color: #49E2A5;
          }
        }
        .close-btn{
          text-align: center;
          padding: 20*@toVw;
        }
      }
      .imgPop-block{
        max-height: 500*@toVw;
        overflow: auto;
        img{
          max-width: 300*@toVw;
        }
      }
      .btn-block{
        position:relative;
        min-width:90*@toVw ;
        margin-top: 0;
        display: block;
        height: 100%;
        .age-block{
          display: block;
          position: static;
          padding: 0;
          height: 28*@toVw;
          width: 88*@toVw;
          line-height: 28*@toVw;
          border: 1*@toVw solid #666;
          border-radius: 100*@toVw;
          font-size:12*@toVw;
          font-family:PingFang-SC-Medium;
          font-weight:500;
          color:rgba(102,102,102,1);
        }
        .age-change-block{
          position: static;
          width: 80*@toVw;
          margin-top: 10*@toVw;
          border-radius: 8*@toVw;
          border: 1*@toVw solid #666666;
          font-size:12*@toVw;
          font-family:PingFang-SC-Medium;
          font-weight:500;
          color:rgba(102,102,102,1);
          &>div{
            padding: 6*@toVw 11*@toVw;
            text-align: left;
            &:first-child{
              border-bottom: 1*@toVw solid #eee;
            }
          }
        }
        .change-block-HP{
          position: absolute;
          top: ~"calc(100vh - 12.5vw)";
          display: block;
          width: 78*@toVw;
          img{
            width: 100%;
          }
        }
        .change-block{
          display: none;
        }
      }
    }
  }
</style>
