web-dev-qa-db-fra.com

Impossible de faire fonctionner l'API Web Audio avec iOS 11 Safari

Donc, iOS 11 Safari était supposé ajouter le support pour l'API Web Audio, mais cela ne semble toujours pas fonctionner avec ce code javascript:

//called on page load
get_user_media = get_user_media || navigator.webkitGetUserMedia;  
get_user_media = get_user_media || navigator.mozGetUserMedia;
get_user_media.call(navigator, { "audio": true }, use_stream, function () { });
function use_stream(stream){
    var audio_context = new AudioContext();
    var microphone = audio_context.createMediaStreamSource(stream);
    window.source = microphone; // Workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=934512
    var script_processor = audio_context.createScriptProcessor(1024, 1, 1);
    script_processor.connect(audio_context.destination);
    microphone.connect(script_processor);
    //do more stuff which involves processing the data from user's microphone...
}

J'ai copié la plupart de ce code, de sorte que je n'en ai qu'une compréhension sommaire. Je sais qu'il est censé capturer le microphone de l'utilisateur (et le fait sur d'autres navigateurs) pour un traitement ultérieur. Je sais que le code est interrompu sur la ligne var audio_context = new AudioContext(); (aucun code après son exécution), mais je n'ai aucun message d'erreur car je n'ai pas de Mac requis pour déboguer iOS Safari (Apple est déjà prêt> _ <) Quelqu'un sait-il ce qui se passe et/ou comment y remédier?

e: j'ai oublié de mentionner que je l'ai consultée et que, apparemment, j'ai besoin du mot clé "webkit" avant d'utiliser l'API Web Audio dans Safari, mais le faire var audio_context = new webkitAudioContext(); ne fonctionne pas non plus.

4
Artikash

@TomW était sur la bonne voie - fondamentalement, la webkitAudioContext est suspendue sauf si elle est créée en réponse directe au tap de l'utilisateur (avant que vous obteniez le flux).

Voir ma réponse à https://stackoverflow.com/a/46534088/933879 pour plus de détails et un exemple de travail. 

8
Nathan Friedly

Rien ne fonctionne sur mobile enregistrer dans les applications de l'écran d'accueil. J'ai publié un rapport de bogue au développeur Apple. Vous avez reçu une réponse indiquant qu'il s'agissait d'un doublon (ce qui signifie qu'ils savent .. aucune idée si ou quand ils le corrigeront réellement). 

0
Kerry Davis