2016-09-02 3 views
2

JavaScriptでオーディオをリアルタイムで16kHzのサンプリングレートで録音したいと考えています。私は、次のコードを持っている:JavaScriptのgetusermediaでこのパラメータを設定するにはどうすればよいですか?

navigator.getUserMedia(
    { 
     "audio": { 
      "mandatory": { 
       "googEchoCancellation": "false", 
       "googAutoGainControl": "false", 
       "googNoiseSuppression": "false", 
       "googHighpassFilter": "false" 
      }, 
      "optional": { 
       "sampleRate": 16000 
      } 
     }, 
    }, gotStream, function(e) { 
     console.log(e); 
    }); 

をしかし、これはエラーをスローします:

index.html:1026 Uncaught TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The value provided is neither an array, nor does it have indexed properties.

どのように私はリアルタイムでJavaScriptで16kHzのでオーディオを録音することができますか?

答えて

3

いくつかの問題:

  1. optional(今advanced)例えば、アレイを取りoptional: [{ sampleRate: 16000 }]
  2. この制約構文は古く、Chromeでのみ動作します。
  3. sampleRateはまだブラウザAFAIKに実装されていません。

したがって、少なくともまだ動作しません。今後、spec syntax

navigator.mediaDevices.getUserMedia({ 
    audio: { 
    echoCancellation: {exact: false}, 
    sampleRate: 16000, 
    } 
}) 
.then(gotStream) 
.catch(e => console.log(e)); 
関連する問題