2016-05-29 11 views
0

Ich arbeite mithowler.js Update Lautstärke eines Tons

howler.js 2,0

aber kann nicht scheinen, ein einfaches Beispiel für die Aktualisierung des Volumens zum Laufen zu bringen. Hier einige ein Beispielcode:

window.sound = new Howl({ 
src:'http://example.com/assets/audio/background.mp3', 
    loop: true, 
    volume: 0.15 
}); 

window.updateVolume = function(value) { 
    alert('before update volume:', window.sound.volume()); 
    sound.volume = value; 
    alert('after update volume:', window.sound.volume()); 
} 

Ich habe versucht, beide volume() function verwenden und nur volume Eigenschaft. Keiner scheint zu funktionieren.

JsFiddle: https://jsfiddle.net/umx2bdm8/

Was bin ich? Außerdem habe ich festgestellt, dass mehrere Instanzen des gleichen Sounds zu spielen beginnen, wenn Sie mehrmals auf play klicken. Ich will das nicht und schlagen play auf einer bestimmten howl Instanz sollte immer mit dieser Instanz arbeiten.

Antwort

1

Wenn Sie howler.js’s docs for volume betrachten, wird angezeigt, dass volume eine Funktion ist, keine zuweisbare Eigenschaft, und dass Sie das neue Volume als Argument übergeben müssen, um das Volume festzulegen. Sie müssen also sound.volume(value) statt sound.volume = value tun.

sound = new Howl({ 
 
    src: 'http://test.menstrupedia.com/assets/audio/background.mp3', 
 
    loop: true, 
 
    volume: 0.5 
 
}); 
 

 
updateVolume = function(value) { 
 
    console.log('before update volume:', sound.volume()); 
 
    sound.volume(value); 
 
    console.log('after update volume:', sound.volume()); 
 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.0.0-beta13/howler.min.js"></script> 
 

 

 
<button onclick="sound.play()"> 
 
    Play 
 
</button> 
 
<button onclick="updateVolume(0.15)"> 
 
    Change volume to 0.15 
 
</button>

(wechselte ich die Lautstärkewerte oben für Demozwecke, so Zuhörer müssen sich nicht darum kümmern, ob die Musik wird sie plötzlich betäuben, wenn sie auf die Schaltfläche klicken.)

+0

Do Sie wissen auch, warum mehrere Instanzen des Sounds spielen, wenn Sie mehrmals auf "play" klicken. – Rajat

+0

Nein, ich weiß nicht, warum - [die Dokumentation für 'play'] (https://github.com/goldfire/howler.js/tree/2.0#playspriteid) nicht erwähnen, dass das passieren soll. Aber ich weiß, dass Sie es beheben können, indem Sie den HTML-Code in 'onclick =" sound.stop(); sound.play() "' ändern. –