HTML5音乐Audio 视频播放video

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .container {
      width: 400px;
      border: 1px solid #ddd;
      text-align: center;
      padding-bottom: 10px;
    }

    .container p {
      font-size: 1.3em;
      font-weight: bold;
      text-align: center;
    }

    .container img {
      width: 340px;
      height: 340px;
      border-radius: 50%;
    }

    .container input {
      width: 340px;
      display: block;
      margin: 10px auto;
    }

    .container .time {
      width: 340px;
      height: 30px;
      margin: 0px auto;
    }

    .container .time .left {
      float: left;
    }

    .container .time .right {
      float: right;
    }

    video {
      background-color: black;
      width: 640px;
      height: 360px;
    }
  </style>
</head>

<body>
  <video id="video" src="./assets//let_it_go.mp4"></video>



  <div class="container">


    <input id="range" type="range" min="0" value="0" max="100">
    <div class="time">
      <span class="left">00:00</span>
      <span class="right">0:00</span>
    </div>

    <button id="btn_play">播放/暂停</button>
    <button id="btn_vp">音量+</button>
    <button id="btn_vm">音量-</button>
    <button id="btn_05">0.5倍速</button>
    <button id="btn_1">1倍速</button>
    <button id="btn_2">2倍速</button>
    <button id="btn_fc">全屏播放</button>
  </div>

  <script src="./assets//moment.js"> </script>
  <script>

    let player = document.getElementById('video')
    
    // 全屏播放
    btn_fc.addEventListener('click',function () {
      //请求全屏显示DOm元素
      player.requestFullscreen()
      })

    player.addEventListener('loadedmetadata', function () {
      let dt = player.duration //总时长
      let dtstr = moment.unix(dt).format('mm:ss')
      let s2 = document.getElementsByClassName('right')[0]
      s2.innerHTML = dtstr
    })

    // 更新播放进度
    range.addEventListener('change', function () {
      console.log(range.volume);
      player.currentTime = range.value
    })

    //更新进度
    player.addEventListener("timeupdate", function () {
      let ct = player.currentTime  //当前时长
      let dt = player.duration //总时长

      console.log(`timeupdate() ct:${ct}dt:${dt}`);
      //更新进度条
      range.max = dt
      range.value = ct
      //更新时间:  当前时间  与 总时长
      let ctstr = moment.unix(ct).format('mm:ss')
      let dtstr = moment.unix(dt).format('mm:ss')
      let s1 = document.getElementsByClassName('left')[0]
      let s2 = document.getElementsByClassName('right')[0]
      s1.innerHTML = ctstr
      s2.innerHTML = dtstr

    })

    //控制i音量
    btn_vm.addEventListener('click', function () {
      player.volume = Math.max(player.volume - 0.1, 0)
      console.log(alyer.volume);
    })
    btn_vp.addEventListener('click', function () {
      player.volume = player.volume + 01
      console.log(alyer.volume);
    })
    //倍数播放
    btn_05.addEventListener('click', function () {
      player.playbackRate = 0.5
    })
    btn_1.addEventListener('click', function () {
      player.playbackRate = 1
    })
    btn_2.addEventListener('click', function () {
      player.playbackRate = 12
    })





    // let btn_play = document.getElementById('btn_play')  dom获取
    //暂停与播放
    btn_play.addEventListener('click', function () {
      if (player.paused) {
        player.play()

      } else {
        player.pause()
      }

    })
  </script>

</body>

</html>

 

 

 案例:写一个小音乐播放器。https://neteasecloudmusicapi.vercel.app/#/?id=license

音乐播放

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .container {
      width: 400px;
      border: 1px solid #ddd;
      text-align: center;
      padding-bottom: 10px;
    }

    .container p {
      font-size: 1.3em;
      font-weight: bold;
      text-align: center;
    }

    .container img {
      width: 340px;
      height: 340px;
      border-radius: 50%;
    }

    .container input {
      width: 340px;
      display: block;
      margin: 10px auto;
    }

    .container .time {
      width: 340px;
      height: 30px;
      margin: 0px auto;
    }

    .container .time .left {
      float: left;
    }

    .container .time .right {
      float: right;
    }
  </style>
</head>

<body>
  <div class="container">
    <p>let it go</p>
    <img src="assets/logo.jpg" alt="">
    <input id="range" type="range" min="0" value="0" max="100">
    <div class="time">
      <span class="left">00:00</span>
      <span class="right">0:00</span>
    </div>

    <button id="btn_play">播放/暂停</button>
    <button id="btn_vp">音量+</button>
    <button id="btn_vm">音量-</button>
    <button id="btn_05">0.5倍速</button>
    <button id="btn_1">1倍速</button>
    <button id="btn_2">2倍速</button>
  </div>

  <script src="./assets//moment.js"> </script>
  <script>
    let player = new Audio()//创建一个播放器
    player.src = "./assets/let_it_go.mp3"

    player.addEventListener('loadedmetadata', function () {
      let dt = player.duration //总时长
      let dtstr = moment.unix(dt).format('mm:ss')
      let s2 = document.getElementsByClassName('right')[0]
      s2.innerHTML = dtstr 
    })

    // 更新播放进度
    range.addEventListener('change', function () {
      console.log(range.volume);
      player.currentTime = range.value
    })

    //更新进度
    player.addEventListener("timeupdate", function () {
      let ct = player.currentTime  //当前时长
      let dt = player.duration //总时长

      console.log(`timeupdate() ct:${ct}dt:${dt}`);
      //更新进度条
      range.max = dt
      range.value = ct
      //更新时间:  当前时间  与 总时长
      let ctstr = moment.unix(ct).format('mm:ss')
      let dtstr = moment.unix(dt).format('mm:ss')
      let s1 = document.getElementsByClassName('left')[0]
      let s2 = document.getElementsByClassName('right')[0]
      s1.innerHTML = ctstr
      s2.innerHTML = dtstr

    })

    //控制i音量
    btn_vm.addEventListener('click', function () {
      player.volume = Math.max(player.volume - 0.1, 0)
      console.log(alyer.volume);
    })
    btn_vp.addEventListener('click', function () {
      player.volume = player.volume + 01
      console.log(alyer.volume);
    })
    //倍数播放
    btn_05.addEventListener('click', function () {
      player.playbackRate = 0.5
    })
    btn_1.addEventListener('click', function () {
      player.playbackRate = 1
    })
    btn_2.addEventListener('click', function () {
      player.playbackRate = 2
    })





    // let btn_play = document.getElementById('btn_play')  dom获取
    //暂停与播放
    btn_play.addEventListener('click', function () {
      if (player.paused) {
        player.play()

      } else {
        player.pause()
      }

    })
  </script>

</body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值