2017-02-09 4 views
1

Ich möchte die Standardlautstärke eines HTML-Players verringern.Spielerlautstärke in JS/HTML5 Player ändern, aber Lautstärke bleibt gleich

kann ich die Werte verändern sich hier:

`setAttributes(volumeSlider, { "type": "range", "min": "0", "max": "1",  "step": "any", "value": "1", "orient": "vertical", "id": "volumeSlider" });` 

http://codepen.io/Teeke/pen/MJPoOr

Ändern value: 1-0.1 wird der Lautstärkeregler niedriger auf 10 Prozent, aber die Wiedergabespur Volumen bleibt gleich.

Ich habe auch versucht Muting und Werte für diese beiden Funktionen, ohne Wirkung zu verändern:

function volumizer() { 
    if (audioTrack.volume == 0) { setText(muteButton,"volume"); } 
    else { setText(muteButton,"volumehigh"); } 
} 

function muter() { 
    if (audioTrack.volume == 0) { 
     audioTrack.volume = restoreValue; 
     volumeSlider.value = restoreValue; 
} else { 
    audioTrack.volume = 0; 
    restoreValue = volumeSlider.value; 
    volumeSlider.value = 0; 
    } 
} 

Welchen Wert muss ich ändern programmatisch die Track-Lautstärke zu senken?

Antwort

2

Was fehlt mir hier ... Ihr Beispiel funktioniert gut.

Wenn ich den Schieberegler wechsle, ändert sich die Lautstärke der Spur sowohl visuell, in der Konsole und als Audio auf diesem System.

Wenn es nicht für Sie ist, könnte es ein Browserproblem sein. Ich verwende die Chrome-Version 56.0.2924.87.

Um Werte in der Konsole zu sehen, die Konsole-Taste auf der linken unteren drücken und die console.log Funktion:

volumeSlider.addEventListener("input", function(){ 
    console.log(['beforeVolChng', volumeSlider.value, audioTrack.volume]); 
    audioTrack.volume = volumeSlider.value; 
    console.log(['afterVolChng', volumeSlider.value, audioTrack.volume]); 
}, false); 

console.log kann alles nehmen: primitive Typen (int, float, char), Objekte und Arrays usw.

Wenn Ihr Problem ist: Sie möchten, dass die Wiedergabelautstärke auf Ihrem Schieberegler angewendet wird, wenn Sie anfangen zu spielen. Lass mich sehen.

Hier wäre dies eine gute Lösung sein:

audioTrack.addEventListener('playing', 
    function(){ 
     playhead.max = audioTrack.duration; 
     audioTrack.volume = volumeSlider.value; 
    }, false); 
+0

Der Schieber funktioniert gut, das ist kein Problem. Ich möchte die Standardlautstärke nur mit JS und nicht mit dem Schieberegler verringern können. Ich möchte, dass der Schieberegler bei 50 oder 30% des aktuellen Startvolumens startet. Ich muss die Werte nicht loggen, sondern nur verschiedene Startwerte fest codieren, da dieses Audio in einem Mix von Sounds, die ich erschaffe, momentan zu laut ist. – RubyRube

+0

Nun, Sie brauchen eine Art Trigger, wenn Sie das Volume anwenden möchten. Du kannst 2 Möglichkeiten wählen: Einfach die gewünschte Lautstärke direkt beim 'Spielen' Event einstellen oder die Position des Sliders ändern (was ich tun sollte, also spiegelt die Lautstärke der Audiowiedergabe die Einstellung des Sliders wider) . Zum Beispiel: volumeSlider.value = 0.1; –

+0

Ich habe bereits versucht, Volume Slider.value auf 0,1, ich war überrascht, wenn es nicht funktioniert. – RubyRube

Verwandte Themen