2017-09-16 9 views
2

だから、iOSの11のSafariは、ウェブオーディオAPIのサポートを追加することになっていたが、まだ、このJavaScriptコードで動作していないよう:は、iOS 11のSafariで動作するウェブオーディオAPIを取得できません

//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... 
} 

このコードのほとんどを貼り付けたので、わかりました。私は、それがさらなる処理のためにユーザーのマイクを捕捉することになっていることを知っています(そして、他のブラウザでもそうです)。私は、コードがvar audio_context = new AudioContext();行に壊れていることを知っています(実行後のコードなし)が、iOS Safariをデバッグするために必要なMacを持っていないため、エラーメッセージが表示されません。 _ <)誰が何が起こっているか、それを修正する方法を知っていますか?

E:私はそれを見上げたことを言及するのを忘れてしまったと明らかに私は、キーワードを必要とする「のWebKit」をSafariでウェブオーディオAPIを使用する前に、それvar audio_context = new webkitAudioContext();は動作しません作るのいずれか

+0

これをwindow.webketAudioContextに変更してください。 – user7951676

+0

は、誤植ですか? – Artikash

+1

は、 '' var audio_context = new AudioContext(); ''を '' 'var audio_context = window.webkitAudioContext;' 'に置き換えても役に立ちません。 – Artikash

答えて

3

@TomWは右側にありましたトラック - 基本的にwebkitAudioContextは、(ストリームを取得する前に)ユーザーのタップに直接応答して作成されている場合を除き、中断されます。

詳しくは、https://stackoverflow.com/a/46534088/933879の私の答えを参照してください。

+0

ありがとう、今働いている。 AudioContext()をwebkitAudioContext()に変更し、audio_contextを再開するボタン – Artikash

+0

興味深いものに変更する必要があります。私は 'audioContext.resume()'ボタンをonclickハンドルに持っています。それで、私が音を演奏しようとすると、私はまだ音がありません。オーディオコンテキストオブジェクトを調べると、その 'state'プロパティは' running'です。私が紛失しているものは他にありますか? –

+0

@AleksG:おそらく。状態が「実行中」の場合、おそらく実際の問題が何であるかは言い難いが、この*特定の問題には当たらないだろう。 –

0

モバイルアプリでホームスクリーンアプリに保存する機能はありません。私はAppleの開発者にバグレポートを発行しました。それが重複しているという応答を得ました(つまり、実際に修正するかどうかは分かりません)。

関連する問題