Get/Set 我所有音频实例的全局音量
Get/Set global volume for all of my audio instances
我正在使用 jPlayer 播放我网站上的音频文件。
我创建了 mix 以实现两首歌曲之间的平滑过渡。
mix = 在降低第一个播放器的音量的同时,我正在提高另一个播放器的音量。
我正在寻找一个全局音量 属性,它会同时影响两个玩家,这样我就可以相对于他们当前的音量状态更改音量,即使他们处于中间状态混合。
我尝试按照 Jplayer 的文档中的描述使用 globalVolume
,但我不明白我应该用它做什么并设置它.
我确定有更优雅的方法来访问音频 class 并请求全局音量或更改它。
在 MDN 上,获取实例卷的唯一方法是
var vid = document.getElementById("myAudio");
vid.volume = 0.2;
有什么建议吗?
您可以通过调用构造函数创建一个jPlayer实例:$('#myPlayerId').jPlayer({option: 'value'});
.
其中一个选项是volume
,它将初始音量定义为从0到1的值:$('#myPlayerId').jPlayer({volume: '0.8'});
。
另一种选择是globalVolume
。这是一个布尔选项,它导致 volume
选项与其他启用了 globalVolume
选项的 jPlayer 实例共享。 Check out this demo page 例如,不要忘记调整音量以查看此选项的效果。
无论如何,globalVolume
属性 不是您想要的,如果您想要创建交叉淡入淡出效果(或实现一种方法来 'mix' 一个或多个音频流)。
我会做的是听 jPlayer event,更具体地说,当实例的音量发生变化时触发的那个:$.jPlayer.event.volumechange
。例如:
// [...] Code to create jPlayer instances
var handleOnVolumeChange = function handleOnVolumeChange (event) {
var targetElement = event.srcElement || event.target;
var playerId = targetElement.id;
// event.jPlayer contains jPlayer information
// event.jPlayer.options: The volume and muted values are maintained here along with all the other options.
};
$('#playerOneId').bind($.jPlayer.event.volumechange, handleOnVolumeChange);
$('#playerTwoId').bind($.jPlayer.event.volumechange, handleOnVolumeChange);
在处理事件的函数中,您应该能够找出哪个玩家触发了它并做出相应的响应(例如,根据您定义的比例更改一个或多个其他玩家的音量)。
这对你有用吗?
我正在使用 jPlayer 播放我网站上的音频文件。
我创建了 mix 以实现两首歌曲之间的平滑过渡。
mix = 在降低第一个播放器的音量的同时,我正在提高另一个播放器的音量。
我正在寻找一个全局音量 属性,它会同时影响两个玩家,这样我就可以相对于他们当前的音量状态更改音量,即使他们处于中间状态混合。
我尝试按照 Jplayer 的文档中的描述使用 globalVolume
,但我不明白我应该用它做什么并设置它.
我确定有更优雅的方法来访问音频 class 并请求全局音量或更改它。
在 MDN 上,获取实例卷的唯一方法是
var vid = document.getElementById("myAudio"); vid.volume = 0.2;
有什么建议吗?
您可以通过调用构造函数创建一个jPlayer实例:$('#myPlayerId').jPlayer({option: 'value'});
.
其中一个选项是volume
,它将初始音量定义为从0到1的值:$('#myPlayerId').jPlayer({volume: '0.8'});
。
另一种选择是globalVolume
。这是一个布尔选项,它导致 volume
选项与其他启用了 globalVolume
选项的 jPlayer 实例共享。 Check out this demo page 例如,不要忘记调整音量以查看此选项的效果。
无论如何,globalVolume
属性 不是您想要的,如果您想要创建交叉淡入淡出效果(或实现一种方法来 'mix' 一个或多个音频流)。
我会做的是听 jPlayer event,更具体地说,当实例的音量发生变化时触发的那个:$.jPlayer.event.volumechange
。例如:
// [...] Code to create jPlayer instances
var handleOnVolumeChange = function handleOnVolumeChange (event) {
var targetElement = event.srcElement || event.target;
var playerId = targetElement.id;
// event.jPlayer contains jPlayer information
// event.jPlayer.options: The volume and muted values are maintained here along with all the other options.
};
$('#playerOneId').bind($.jPlayer.event.volumechange, handleOnVolumeChange);
$('#playerTwoId').bind($.jPlayer.event.volumechange, handleOnVolumeChange);
在处理事件的函数中,您应该能够找出哪个玩家触发了它并做出相应的响应(例如,根据您定义的比例更改一个或多个其他玩家的音量)。
这对你有用吗?