javascript - 逐渐静音/取消静音视频的音频
问题描述
使用此代码,我可以切换静音/取消静音播放视频的音频:
const btn = document.getElementById('mute'),
video = document.querySelector('video');
btn.addEventListener('click', () => {
if (btn.value === 'unmuted') {
btn.value = 'muted';
btn.innerHTML = '<i class="fas fa-volume-mute"></i>';
video.muted = true;
} else {
btn.value = 'unmuted';
btn.innerHTML = '<i class="fas fa-volume-up"></i>';
video.muted = false;
}
});
<a id="mute" value="muted"><i class="fas fa-volume-mute"></i></a>
当单击按钮而不是即时静音/取消静音时,如何添加淡入/淡出音频效果?
谢谢。
解决方案
您可以使用 JQuery .animate 淡入/淡出视频。动画音量为双倍(0 到 1 之间)
var $video_player = $('#video-player');
var $mute_button = $('#mute-button');
$mute_button.on('click', () => {
$video_player.toggleClass('mute');
if ($video_player.hasClass('mute')) {
// Fade out audio
$video_player.animate({ volume: 0 }, 5000);
$mute_button.html('unmute');
} else {
// Fade in audio
$video_player.animate({ volume: 1 }, 5000);
$mute_button.html('mute');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<video id="video-player" width="100%" height="150px" controls autoplay>
<source src="http://grochtdreis.de/fuer-jsfiddle/video/sintel_trailer-480.mp4" type="video/mp4">
</video>
<center><button id="mute-button">mute</button></center>
推荐阅读
- c++ - OpenGL C++,工作几天后纹理突然变黑
- swift - Swift - CLLocation 数组的可编码解码数组
- reactjs - 在反应中调用调度函数
- file - 如何使用应用程序脚本覆盖内容超过 10MB 的文件?
- ios - 在 CAShapeLayer 中添加图像
- arrays - 批处理文件用预定义的文本替换文本文件中的特定行
- postgresql - WAL 被堆积起来 - 逻辑复制的 restart_lsn 不在 PostgreSQL 中移动
- flutter - 使用变量按 List 中的键排序
- java - 需要来自android java中模型的值名称
- java - windows上的java命令行参数处理