我想在SoundCloud上使用setVolume(0.01),因为它对我来说很响亮。 作为一个临时解决方案,我让整个Chrome浏览器更安静,但是Youtube和其他网站太安静了。
我发现可以通过“SC.Widget方法”控制SoundCloud的音量,但我不知道那是什么。
有人可以解释我如何使用它将SoundCloud的音量设置为0.01?
我已经尝试将其放在Chrome控制台中,但这给了我以下内容:VM1394:1 Uncaught ReferenceError: setVolume is not defined(…)
答案 0 :(得分:2)
要使用脚本更改 Soundcloud网站上的音量,您无法使用真正的API,也无法通过官方方式执行此操作。这应该有效:
webpackJsonp([], {
0: function(a, b, require) {
var modules = require.c;
modules[54].exports.broadcast("volume:set", 0.1);
}
});
由于Soundcloude代码被缩小并且不被其他脚本使用,因此上述解决方案可能会因为这样的错误而中断:
Uncaught TypeError:modules [54] .exports.broadcast不是函数(...)
一个hacky解决方案是迭代所有模块并执行volume:set
广播:
webpackJsonp([], {
0: function(a, b, require) {
var modules = require.c;
for(var x in modules){
if(modules[x].exports.broadcast){
modules[x].exports.broadcast("volume:set", 1.0);
}
}
}
});
更改 Soundcloud小部件的音量:
HTML5小部件API的解释为here。您首先需要做的是包括Soundcloud的API脚本,您可以使用我从here借来的代码:
var scapi = document.createElement('script');
scapi.src = "https://w.soundcloud.com/player/api.js";
document.getElementsByTagName('head')[0].appendChild(scapi);
下一步是找到Soundcloud小部件并使用API脚本来获取我们需要的功能,即setVolume()
:
var sciframe = document.querySelector("iframe");
var widget = SC.Widget(sciframe);
widget.setVolume(0.1); // goes from 0 to 1
这可以用作Greasemonkey或Tampermonkey的用户脚本并自动运行:
var scapi = document.createElement('script');
scapi.src = "https://w.soundcloud.com/player/api.js";
document.getElementsByTagName('head')[0].appendChild(scapi);
function waitAndRegister() {
window.setTimeout(function(){
if(typeof(SC) == 'undefined') {
waitAndRegister();
} else {
quiet();
}
}, 100);
};
waitAndRegister();
function quiet() {
var scWidgets = document.querySelectorAll('iframe[src^="https://w.soundcloud.com/player"]');
if(scWidgets.length > 0) {
for (var i = 0; i < scWidgets.length; ++i) {
var widget = SC.Widget(scWidgets[i]);
widget.bind(SC.Widget.Events.PLAY, function() {
widget.setVolume(0.1);
});
}
}
}
答案 1 :(得分:0)
Chrome> Ctrl + Shift + i>应用程序标签>存储>本地存储> V2 :: local :: settings
并设置所需的音量(例如:volume“:0.05,”)
对我来说就像一个魅力。