播放/暂停切换是多媒体应用中常见的用户交互功能,允许用户控制媒体内容的播放状态。这个功能通常由一个按钮实现,点击时在播放和暂停状态之间切换。
<video id="myVideo" src="example.mp4"></video>
<button id="playPauseBtn">播放</button>
<script>
const video = document.getElementById('myVideo');
const btn = document.getElementById('playPauseBtn');
btn.addEventListener('click', function() {
if (video.paused) {
video.play();
btn.textContent = '暂停';
} else {
video.pause();
btn.textContent = '播放';
}
});
</script>
let isPlaying = false;
const audio = new Audio('example.mp3');
const btn = document.getElementById('playPauseBtn');
btn.addEventListener('click', function() {
if (isPlaying) {
audio.pause();
btn.textContent = '播放';
} else {
audio.play();
btn.textContent = '暂停';
}
isPlaying = !isPlaying;
});
原因:通常是由于没有正确监听媒体元素的播放状态变化。
解决方案:
video.addEventListener('play', function() {
btn.textContent = '暂停';
});
video.addEventListener('pause', function() {
btn.textContent = '播放';
});
原因:大多数移动浏览器阻止自动播放媒体内容。
解决方案:
playsinline
属性确保iOS设备内联播放<video id="myVideo" playsinline></video>
原因:可能是由于媒体未加载完成或网络问题。
解决方案:
video.addEventListener('canplay', function() {
// 确保媒体已加载足够内容
video.play().catch(e => console.error('播放失败:', e));
});
<video id="myVideo" src="example.mp4"></video>
<button id="playPauseBtn">播放</button>
<progress id="progressBar" value="0" max="100"></progress>
<script>
const video = document.getElementById('myVideo');
const btn = document.getElementById('playPauseBtn');
const progressBar = document.getElementById('progressBar');
btn.addEventListener('click', togglePlayPause);
function togglePlayPause() {
if (video.paused) {
video.play();
btn.textContent = '暂停';
} else {
video.pause();
btn.textContent = '播放';
}
}
video.addEventListener('timeupdate', function() {
const percentage = (video.currentTime / video.duration) * 100;
progressBar.value = percentage;
});
</script>
播放/暂停切换虽然是一个简单的功能,但在实际应用中需要考虑多种边界情况和用户体验细节。
没有搜到相关的文章