Mir ist klar, dass es sich hier um eine Videofrage handelt - und sie gilt auch für Audio.
Ich habe einen Audiotest mit der Absicht erstellt, ihn in Moderizr zu laden mit Modernizr.addTest()
.
Die Ergebnisse sind überraschend und hängen stark von der Plattform und dem Systemzustand ab. Es stellt sich heraus, dass es mehrere Android-Browser gibt, die Autoplay unterstützen. Wer hätte das gedacht.
Von der Betrachtung der GitHub Ich kann mir vorstellen, dass die Modernizr-Leute das alles zuverlässiger und eleganter herausfinden werden als ich - wenn sie es nicht schon getan haben. Es scheint auf das Timing hinauszulaufen. Man könnte meinen, die Browser-Jungs würden uns hier einen Knochen hinwerfen. Vielleicht werden sie das auch.
Wie auch immer, hier ist der jsfiddle-Link: Audio().autoplay test .
Das jsfiddle-Beispiel enthält zwar auch Fluff-Code, aber hier ist der Kern:
var supportsAutoplay = false; //assume
var audio = new Audio();
var waitTime;
audio.autoplay = true;
audio.volume = 0;
// this will only be triggered if autoplay works
audio.addEventListener('play', function () {
supportsAutoplay = true;
});
audio.src = testSrc; //see if the listener is listening
setTimeout( //wait for listener to run
function(){
return supportsAutoplay;
},
waitTime
);
Ich habe zwar noch keinen mit einer setTimeout
außer der obigen (die Modernizr-Leute sprechen darüber) gibt es mehrere Versionen dieses Codes. Ich denke, ich werde Peter Coles . Vielleicht ist seine Version weniger anfällig für Zeitprobleme.