我正在使用jPlayer在我的网站上播放音频文件。
我创建了 mix ,以便在两首歌曲之间平滑过渡。
混合 =在减小第一个播放器的音量时,我正在增加另一个播放器的音量。
我正在寻找一个同时影响两个玩家的全局音量属性,这样我就可以相对于当前音量状态改变音量,即使它们处于混音中间。
我尝试使用 Jplayer 文档中描述的globalVolume
,但我不明白我该怎么做并设置它。
我确信有更优雅的方式来访问Audio 类并请求globalVolume或更改它。
在MDN上获取实例卷的唯一方法是
var vid = document.getElementById("myAudio"); vid.volume = 0.2;
有什么建议吗?
答案 0 :(得分:1)
您可以通过调用构造函数$('#myPlayerId').jPlayer({option: 'value'});
来创建jPlayer实例。
其中一个选项是volume
,它将初始音量定义为0到1之间的值:$('#myPlayerId').jPlayer({volume: '0.8'});
。
另一个选项是globalVolume
。这是一个布尔选项,可以使volume
选项与启用了globalVolume
选项的其他jPlayer实例共享。 Check out this demo page举个示例,不要忘记使用该卷来查看此选项的效果。
无论如何,globalVolume
属性并不是您想要创建交叉淡入淡出效果(或实现一种方式混合一个或多个)的方式音频流)。
我要做的是听一个jPlayer event,更具体地说是当实例的音量发生变化时被触发的{{3}}:$.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);
在处理事件的功能中,你应该能够找出哪个玩家解雇它并做出相应的反应(例如,根据你定义的比例改变一个或多个其他玩家的音量)。
这对你有用吗?