Je voudrais commencer par dire que je me rends compte que cette question est ancienne et qu'elle a déjà une réponse acceptée ; mais, en tant qu'internaute malheureux qui a utilisé cette question comme un moyen d'arriver à ses fins pour se voir prouver qu'il avait tort peu après (mais pas avant d'avoir un peu contrarié mon client), je veux ajouter mes réflexions et mes suggestions.
Bien que @DSG et @Giona aient raison et qu'il n'y ait rien de mal dans leurs réponses, il existe un mécanisme créatif que vous pouvez employer pour "contourner", pour ainsi dire, cette limitation. Cela ne veut pas dire que j'approuve le contournement de cette fonctionnalité, bien au contraire, mais juste quelques mécanismes pour que l'utilisateur ait toujours "l'impression" qu'un fichier vidéo ou audio est "en lecture automatique".
La solution rapide est de cacher une balise vidéo quelque part sur la page mobile, puisque j'ai construit un site réactif, je ne le fais que pour les petits écrans. La balise vidéo (exemples HTML et jQuery) :
HTML
<video id="dummyVideo" src="" preload="none" width="1" height="2"></video>
jQuery
var $dummyVideo = $("<video />", {
id: "dummyVideo",
src: "",
preload: "none",
width: "1",
height: "2"
});
Avec cet élément caché sur la page, lorsqu'un utilisateur "clique" pour regarder un film (il s'agit toujours d'une interaction avec l'utilisateur, il n'y a aucun moyen de contourner cette exigence), au lieu de naviguer vers une page secondaire de visionnage, je charge la vidéo cachée. Cela fonctionne principalement parce que la balise media n'est pas vraiment utilisée mais plutôt promue à une instance Quicktime, de sorte qu'il n'est pas du tout nécessaire d'avoir un élément vidéo visible. Dans le gestionnaire de "clic" (ou "touchend" sur mobile).
$(".movie-container").on("click", function() {
var url = $(this).data("stream-url");
$dummyVideo.attr("src", url);
$dummyVideo.get(0).load(); // required if src changed after page load
$dummyVideo.get(0).play();
});
Et viola. En ce qui concerne l'interface utilisateur, un utilisateur clique sur une vidéo à lire et Quicktime s'ouvre et lit la vidéo qu'il a choisie. Cela ne change rien au fait que les vidéos ne peuvent être lues que par l'action de l'utilisateur. Je n'impose donc pas de données à quiconque ne décide pas de regarder une vidéo avec ce service. J'ai découvert cela en essayant de comprendre comment exactement Youtube a réussi à faire cela avec son mobile, ce qui consiste essentiellement à construire des pages en Javascript et à cacher des éléments fantaisistes comme dans le cas de la balise vidéo.
tl;dr Voici une solution de contournement pour essayer de créer une fonctionnalité UX de "lecture automatique" sur les appareils iOS sans aller au-delà des limites imposées par Apple et en laissant les utilisateurs décider eux-mêmes s'ils veulent regarder une vidéo (ou un fichier audio, bien que je n'aie pas testé) sans qu'elle soit chargée sans leur permission.
De plus, pour la personne qui a commenté que cela vient de sleep.fm, cela n'aurait malheureusement pas été une solution à votre problème qui est la lecture audio basée sur le temps.
J'espère que quelqu'un trouvera cette information utile. Elle m'aurait épargné une semaine de mauvaises nouvelles à un client qui tenait absolument à disposer de cette fonctionnalité et j'ai été heureux de trouver un moyen de l'annoncer en fin de compte.
EDIT
D'autres recherches indiquent que la solution de contournement ci-dessus ne concerne que les appareils iPhone/iPod. L'iPad lit la vidéo dans Safari avant qu'elle n'ait été affichée en plein écran. Il vous faudra donc un mécanisme pour redimensionner la vidéo en cliquant dessus avant de la lire, sinon vous obtiendrez du son et pas de vidéo.
0 votes
Reliés/dupliqués : stackoverflow.com/questions/2841966/ , stackoverflow.com/questions/4259928/
0 votes
Nous devrions peut-être nous pencher sur la détection du navigateur, et sur la nécessité ou non d'appeler playVideo() : stackoverflow.com/questions/26895492/
0 votes
Ce travail pour moi github.com/Stanko/html-canvas-video-player
0 votes
Un blogue utile sur ce sujet : webkit.org/blog/6784/new-video-policies-for-ios
0 votes
Opera mini dans ios prend en charge la lecture automatique par défaut, alors que chrome, firefox et safari ne le font pas et ne proposent pas d'options pour l'activer.