javascript - 如何更改 iframe 元素的音量?
问题描述
在我的网站上,我有一个正在播放音乐的 iframe 元素(在这种情况下我不能使用音频元素),我希望能够使用滑块更改音量。
我尝试了以下方法:
HTML:
<iframe src="bg.mp3" allow="autoplay" style="display:none" id="iframeAudio"></iframe>
<input id="vol-control" type="range" min="0" max="100" step="1" oninput="SetVolume(this.value)" onchange="SetVolume(this.value)" />
Javascript:
var iframe = document.getElementById('iframeAudio');
iframe.setVolume(val / 100);
但是,我在控制台中收到以下错误:
Uncaught TypeError: iframe.setVolume is not a function
我怎样才能做到这一点?
解决方案
您可以使用以下小技巧以不同的方式执行此操作:
您可以将您想要的视频上传到您的 YouTube 频道,然后
- 到YouTube上你要的视频去获取视频ID,你会
v=
像这样找到它
因此,在我们的示例中,视频 ID 是_cB8CE_Q3Yk
- 控制音量或任何其他属性
<!DOCTYPE html>
<html>
<head>
<title>YouTube API</title>
<!--to load YouTube "iframe_api" asynchronously-->
<script async src="https://www.youtube.com/iframe_api"></script>
</head>
<body>
<div id="div_YouTube"></div>
</body>
<script>
function onYouTubeIframeAPIReady() {
var player;
player = new YT.Player('div_YouTube', {
videoId: '_cB8CE_Q3Yk', // video id.
width: 560,
height: 316,
playerVars: {
'autoplay': 1,
'controls': 1,
'showinfo': 0,
'modestbranding': 0,
'loop': 1,
'fs': 0,
'cc_load_policty': 0,
'iv_load_policy': 3
},
events: {
'onReady': function (e) {
e.target.setVolume(100); // For max value, set value to 100.
}
}
});
}
</script>
</html>
有关 IFrame Player API 的更多信息:
推荐阅读
- javascript - 尝试在可视代码中导入模块时,它显示 Unexpected token {
- ios - 使用高阶 Swift 函数的潜在内存泄漏
- java - 找不到符号 setClickListener
- sql - MS Access/SQL - 连接两个表
- css - 在绝对定位的另一个 div 的中心对齐一个 div(垂直对齐不起作用)
- mysql - 如何使用 mySQL 搜索转义字符串?
- swift - UIButton 子类能否覆盖已经在故事板中为按钮设置的 x、y、宽度和高度属性?
- node.js - Passport.authenticate 和 logout 方法和闪烁在我们重定向后路由到新页面之前不起作用
- rest - Microsoft Graph API 在日历中选择和筛选所有者地址
- oracle - Oracle 12c RAC:如何检查负载平衡状态