<!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>