Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Soundausgabe mit audio.play() und onmouseover
#1
Hallo in die Runde. Ich erstelle monatlich ein Online-Comic-Kalenderblatt und lasse mir dabei unter Verwendung von JavaScript immer wieder neue Effekte einfallen, die Sache etwas interessanter zu machen. Klappt auch im Prinzip sehr gut - aber jetzt könnte ich mal einen Hinweis gebrauchen. Schon des Öfteren habe ich mit der einfachen Funktion:

function Sound(s) {
  var audio = new Audio(s);
  audio.volume = 0.5;
  audio.play();
}


Soundeffekte bei einem onclick-Ereignis aus einem "area shape" eingebunden. Diesmal soll zusätzlich auch bei mouseover
Zitieren
#2
Dann brauchst du ja theoretisch nur onclick auszutauschen zu mouseover.
Das sollte eigentlich schon gehen, wenn ich dich richtig verstehe
Hier sind alle meine Lösungen aus allen Foren. Ich helfe auch in Facebook-chat
Zitieren
#3
(07.11.2022, 23:34)admin schrieb: Dann brauchst du ja theoretisch nur onclick  auszutauschen zu mouseover.
Das sollte eigentlich schon gehen, wenn ich dich richtig verstehe

Ich glaube meine Frage wurde etwas verstümmelt übertragen. Noch einmal etwas genauer:
Ich benutze auf der entsprechenden Seite sowohl mouseover als auch  onclick, sogar bei den selben area shape objekten. Schwebt der Mauszeiger über dem area shape, dann wird (mittels mouseover) ein Einleitungstext gesprochen und dazu ein Div mit Text und Grafik gefüllt. 
Bei nachfolgenden onclick-Ereignissen wird dann bei jedem Klick die eigentliche Geschichte (für dieses Objekt) über Soundausgabe und Grafikanzeige erzählt bzw. weitererzählt. Zwischendurch kann auf andere area shapes gewechselt werden und so die gesamte Map - auch durcheinander durchgespielt werden.
Es funktioniert ja auch alles ... bis auf das allererste mouseover. Da regt sich kein Ton, als würde so etwas wie eine Initialisierung der Soundausgabe fehlen.
Wenn ich aber nach dem Aufbau der Seite einen beliebigen Klick mit der Maus vollführe (auch außerhalb der Map) oder eine beliebige Taste drücke, dann funktioniert alles von Beginn an.
Das gleiche Problem habe ich übrigens auch auch, wenn ich in der window.onload-Funktion die Funktion Sound() oder audio.play() direkt aufrufe.
Zitieren
#4
Ist das möglich, das mal Live zu testen?
Da jetzt irgendwelche Vermutungen abzugeben, bringt ja auch nichts, gerade wenn man den Code so nicht kennt.
Hier sind alle meine Lösungen aus allen Foren. Ich helfe auch in Facebook-chat
Zitieren
#5
(11.11.2022, 21:50)admin schrieb: Ist das möglich, das mal Live zu testen?
Da jetzt irgendwelche Vermutungen abzugeben, bringt ja auch nichts, gerade wenn man den Code so nicht kennt.

Ja klar, gerne. Die aktuelle Seite ist im Moment ne riesige Baustelle, werde deshalb den größten Teil rausschmeißen und dann hier den Test-Link setzen.

Danke und bis dahin...
Zitieren
#6
Ich habe der Soundfunktion noch eine Abfrage hinzugefügt um zu verhindern, dass sich bei schnellen Mausbewegungen oder Klicks die audio-Ausgaben überlappen:

function Sound(s) {
	var audio = new Audio(s);
    if (tonalt > "") {			<!--alte Ausgabe stoppen, damit sich nichts überlagert-->
		tonalt.pause();
    	tonalt.currentTime = 0;
	}else{

/*		hier müsste der Sound initialisiert werden (erste Tonausgabe) 
Habe verschiedene Varianten Simulationsvarianten für Maus und Tastatur
probiert - ohne Erfolg	
*/
	}

  	tonalt = audio;
	audio.volume = 0.5;
	audio.play();
}

		Sound(fass[fasspos+2]);


Die Seite ist immer noch Baustelle (und noch nicht im Netz verlinkt), aber ich habe ins rechte Textfeld eine Anleitung geschrieben wie der Effekt reproduziert werden kann. Der Funktion wird eine mp3-Datei (s) übergeben.
Statt auf das Fass zu gehen kann auch am Ziegenbock getestet werden
Link zum testen:
https://www.mosafilm.de/reni/variant/48K.html#
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste