klawischnigg: <audio> Status abfragen, laden, starten

Beitrag lesen

problematische Seite

Hi there,

Die Spuren synchronisiere ich mit Audacity. Zeitlicher Versatz wird in den musikalischen Pausen ausgeglichen. Voraussetzung ist eine Master-Spur, die beim Aufnehmen der Einzelstimmen per Kopfhörer mitgehört wird.

Das hab ich nicht gemeint. Ich meinte, gleichzeitig starten bedeutet nicht Gleichzeitigkeit, wenn Javascript im Spiel ist...;)

Ich gebe so schnell nicht auf. Auf einer Chor-Seite (nicht öffentlich) habe ich für ein Lied drei Spuren und für ein anderes Lied ein Video (Dirigent) und ein Audio synchron hinbekommen.

Auf das kannst Du Dich nicht verlassen. Jeder Browser verhält sich da anderes.

Es funktioniert, wenn ich die drei Spuren starte (gruselig), etwas abwarte, bis die drei Dateien geladen sind und dann nochmal von vorn.

In Deinem Browser.

Das Video setzt zu früh ein für die Tonspur. Da ich keinen Video-Editor zum Abschneiden habe, setze ich beim Start video.currentTime = 2;. Ob Zehntelsekunden möglich sind, muss ich testen. 2/10 sec Latenz bei derselben Stimme zweimal erzeugt leichten Hall, über 5/10 sec wirds zum Echo.

Hängt wieder vom Browser ab. Von den Specs ist currentTime sekundengenau. (BtW, Hall ist das eigentlich nicht, konkret wäre das ein Delay, langes Delay wird zum Echo)

Womöglich kann man im Sekundentakt alle Spuren auf diese Weise synchronisieren. Probieren geht über Diskutieren.

Das stimmt natürlich. Aber, selbst wenn's bei Dir funktioniert, bedeutet das noch nicht notwendigerweise, daß es das auch bei anderen tut.

Aber ich bin für jeden Tipp dankbar. Werde doch nicht der Einzige sein, der <audio> mit Javascript steuert?

Nein, aber Du versuchst möglichweise etwas, wofür das nicht gedacht war...😉

Was Du ja versuchen könntest, anstelle von audio.load() daß Du Deine drei Spuren (ich würd' da mein Glück nicht überreizen😉, wenn's funktionieren sollte) bei Laden der Seite automatisch eine Sekunde bei Lautstärke 0 abspielen läßt. Dann muß der Browser die Dateien schon laden. Hängt aber vermutlich wieder von verschiedenen Umständen ab, was danach passiert. Sollte dann eigentlich genug geladen sein, daß wenigstens alle "Spuren" versuchen, gleichzeitig zu starten, wenn Du bzw. Dein Besucher auf den "Start"-Button klickt.

Also sowas in der Art:

audio1.volume=0;
audio2.volume=0;
audio3.volume=0;

audio1.play();
audio2.play();
audio3.play();

window.setTimeout(function(){audio1.pause();audio2.pause();audio3.pause();},1000);

dann sollte ob beschriebenes Szenario eintreten. Mußt halt auch verhindern, daß in dieser Zeit jemand auf den Start-Button drückt😉...