• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Sound wird auf mobilen Browsern nicht abgespielt

meickl

New member
Hey,

ich habe Probleme beim abspielen einer mp3-Datei. Auf meinem Laptop funktioniert es wunderbar mit Firefox, Chrome und Safari. Auf meinem Samsung Android Handy nicht. Vorab der Code...

Der Player:

Code:
<div><audio src="hub.mp3" id="sound" preload="auto" controls>HTML5 audio wird nicht unterstützt</audio></div>

Das simple Skript, dass den Sound abspielen soll:

Code:
function laden() { //sound vorladen
	audio = document.getElementById('sound');
	audio.load();
	audio.play();
	alert('laden aufgerufen');
}


Sagen wir mal der Einfachheit halber, die Funktion soll über onLoad im body aufgerufen werden. Dann passiert das, was ich oben beschrieben habe: Am Mac geht's, am Handy nicht.

Dabei hat es anscheinend nichts mit fehlender Unterstützung des mp3 Formats zu tun. Drücke ich auf meinem Handy händisch auf das play Icon (der PLayer ist ja mit Controls versehen), wird die mp3-Datei problemlos abgespielt. Woran kann das liegen? Es macht auch keinen Unterschied ob ich die Website lokal oder vom Server lade...

Vielen Dank!

Beste Grüße.
meickl
 
Hey,
Es soll nicht automatisch abgespielt werden. Ich habe es nur den Einfachheit halber so erklärt. Aber das verwirrt, das stimmt. Sorry! Die Funktion wird im Laufe der Anwendung ausgeführt, nämlich wenn der Benutzer sich an einer bestimmten Stelle (auf der Erde) befindet (GPS-Koordinaten). Wie gesagt, in den "nichtmobilen" Browsern geht's...
 
Was hast du mit dem audio.load(); vor? Ein einfaches document.getElementById('sound').play(); sollte doch ausreichen, wenn du die Quelle schon direkt im <audio>-Tag angegeben hast.
 
Also auf dem Rechner wird das Lied automatisch gestartet. Die Buttons funktionieren auch. Auf dem Handy wird das Lied NICHT automatisch abgespielt, aber die Buttons funktionieren.

Mir ist noch etwas komisches aufgefallen (nachfolgend bei Benutzung des Smartphones):
Wenn ich dem Audioplayer "controls" hinzufüge und beim Starten der Website das Lied mit einem "touch" kurz abspiele und wieder stoppe, dann funktioniert die function laden() (wenn sie automatisch durch die entsprechende GPS Koordinaten aufgerufen wird) einwandfrei. Ich check's nicht. So etwas simples...

Ich will einfach nur, dass an einem bestimmten Ort, ein bestimmter Sound im Hintergrund abgespielt wird. Und zwar ohne, dass ich vorher den Sound manuel (kurz) starten muss....
 
Welchen Browser benutzt du auf deinem Android Smartphone?

Bezog sich deine Antwort auf das Beispiel in Beitrag #6? Dort sollte das Abspielen nach min. 1 Sekunde gestartet werden, so wie im Text beschrieben. Erst dann wird der Eintrag in der "Playliste" eingefärbt und die Buttons erscheinen.
 
Mein vorheriger Beitrag Bezog sich auf Beitrag #6, genau. Wie gesagt, auf dem Mac startet es automatisch, auf dem Handy nicht. Ich probierte es auf meinem Smartphone mit dem Standart Android Browser und google chrome.

Aber dein Post hat mich auf die Idee gebracht (ja, hätte ich auch selber drauf kommen können), mal Opera und Firefox zu saugen und es damit zu probieren. Mit diesen Browsern geht an. Echt strange...
 
Zunächst einmal vielen Dank für eure Hilfe! Hat aber Jemand vielleicht eine Idee, wie ich das alternativ für den mobilen Browser Chrome realisieren könnte?
 
Habe es gerade probiert, also wie folgt eingebunden:

HTML:
<div>
    <audio id="sound" controls>
    <source src="hub.mp3" type="audio/mpeg">
    <p>If you are reading this, it is because your browser does not support the HTML 'audio' element.</p>
    </audio>
</div>

Das Problem besteht weiterhin. Habe es auch auf dem iPad im Safari probiert. Genau das gleiche. Nun aber wird es selbst auf dem Mac nicht automatisch abgespielt – lediglich wenn ich auf play drücke...
 
Zuletzt bearbeitet von einem Moderator:
Irgendwie sieht mir danach aus, dass da irgendwas mit der Reihenfolge schief läuft.

Was passiert denn, wenn du die Funktion mit einer Sekunde Verzögerung aufrufst?
 
Irgendwie sieht mir danach aus, dass da irgendwas mit der Reihenfolge schief läuft.

Was passiert denn, wenn du die Funktion mit einer Sekunde Verzögerung aufrufst?

Hi ist zwar etwas spät aber habe das selbe Problem und wollte mal hören ob jemand eine Lösung gefunden hat. Ursache warum es in mobilen Browsern nicht funktioniert ist, dass dies zum Schutze des Benutzer geschieht um keine unnötigen Daten abzurufen. Hier muss der Benutzer aktiv den Sound starten. Deshalb funktioniert der Aufruf auch nach dem der Play Button betätigt wurde. Aber um eine akustische Benachrichtung abzuspielen brauche ich das Audio und ich will es auch über die play() Funktion starten. Oder halt auf andere Weise.
 
Es ist nicht möglich Audio und Video auf Mobilen Geräten automatisch abzuspielen!
Das haben wir Firma Apple zu verdanken.:mad:

https://developer.apple.com/library...iderations/Device-SpecificConsiderations.html
In Safari on iOS (for all devices, including iPad), where the user may be on a cellular network and be charged per data unit, preload and autoplay are disabled. No data is loaded until the user initiates it. This means the JavaScript play() and load() methods are also inactive until the user initiates playback, unless the play() or load() method is triggered by user action. In other words, a user-initiated Play button works, but an onLoad="play()" event does not.

Andorid/Chrome das selbe:
- The end result is that Chrome does not allow applications to play HTML5 audio without an explicit action by the user, similar to how it is handled by iOS, but differently than the stock Android browser handles it.
https://bugs.chromium.org/p/chromium/issues/detail?id=138132

Aber in about:flags kann man den autoplay aktivieren zumindest in Chrome.

Man kann aber die web audio api nutzen: https://developer.mozilla.org/de/docs/Web/API/Web_Audio_API

Da packst Du das mp3 in die decodeAudioData Methode und los gehts


Aber bei Apple beißt du da auf Granit. Es gab dafür aber ein "Hack" weiß nicht ob er noch geht Da müsste ich jetzt jemanden per E-Mail fragen:
Pieter-Tjerk de Boer
Soweit ich das weiß hat er seine Daten Via Websoket gestreamt und in jsmad gepackt:
https://github.com/fasterthanlime/jsmad

*lange ist's her, da gab es noch kein https://developer.mozilla.org/de/docs/Web/API/AudioContext/createMediaStreamSource
 
Zuletzt bearbeitet:
Das Prob kenne ich absolut. Auf einem IPhone funktioniert die Soundausgabe bei meinen Spielen nicht, die ich ebenfalls per HTML5 eingebunden habe. Ich habe mich mittlerweile damit abgefunden, da meine Spiele auch nicht unbedingt für die Benutzung auf Smatphones optimiert sind bzw. überhaupt nicht dafür geeignet sind.
 
Zurück
Oben