する質問をすることでしか得られない、回答やアドバイスがある。7前提・実現したいこと3ch以上音声入力が可能なオーディオインターフェースをWindows10orMacにUSBで接続し、javascriptのgetUserMedia()で3ch以上の音を取得したいです。発生している問題navigator.mediaDevices.getUserMedia(constraints);で音声を取得しようとしたところ、2chまでしか音声が入ってきませんでした。試したことオーディオインターフェースに付属のデジタルミキサーソフトはASIOドライバーと紐付いているので3ch以上取れています。getUserMedia()にはWindowsデフォルトのオーディオドライバーが紐付いているため、2chまでしか取得できないのではと想像しています。2.0なので複数音声取れるかなと試してみましたがやはりgetUserMedia()で2chまでしか取れませんでした。これがなぜなのかもわかりません。想像ですが、getUserMedia()でWindowsやmacのデフォルトのオーディオドライバーからでなくASIOドライバーから音声が取得できれば3ch以上の音声が取得できるのかなと思っています。何かご存知の方いらっしゃいましたら教えてください。お願い致します!attachmentクリップ0気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。件sort評価が高い順sort新着順sort古い順linkcheckベストアンサー+2試してみたことがないので解決方法として参考になるかわからないですが、、、1,ブラウザで取得しているデフォルトのインターフェースが内部インターフェースでなく、外部であるかを確認し、もしそうでなければ外部インターフェースから音声ソースを取得するように設定を変更する2,ASIOのドライバーを利用して3ch対応アプリケーションをCppで作ったことがありました。したらドライバーを使ったらうまい事裏でごにょごにょしてくれるかも?JSだったらこれとかどうでしょうか?(node.jsですが)https://github.com/distopik/node-audio-asio参考になればうれしいです。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。20:49kuramonさん>回答ありがとうございます。>1,ブラウザで取得しているデフォルトのインターフェースが内部インターフェースでなく、外部である>かを確認し、もしそうでなければ外部インターフェースから音声ソースを取得するように設定を変更するこれなのですが、getUserMedia(constraints)の引数constraintsにUSB接続したオーディオインターフェースのデバイスIDは指定できていて、そのオーディオインターフェースの1ch2chから音声は取得できることを確認済みです。この設定だけで取れることを期待していたのですが、そうはうまくいきませんでした。>2,ASIOのドライバーを利用して3ch対応アプリケーションをCppで作ったことがありました。>なのでもしかしたらドライバーを使ったらうまい事裏>でごにょごにょしてくれるかも?→有益な情報ありがとうございます。ソースコード拝見しました。Driverを取得できるようにできるのかがわかりませんでした。回答ありがとうございます。これなのですが、getUserMedia(constraints)の引数constraintsにUSB接続したオーディオインターフェースのデバイスIDは指定できていて、そのオーディオインターフェースの1ch2chから音声は取得できることを確認済みです。この設定だけで取れることを期待していたのですが、そうはうまくいきませんでした。>2,ASIOのドライバーを利用して3ch対応アプリケーションをCppで作ったことがありました。→有益な情報ありがとうございます。ソースコード拝見しました。Driverを取得できるようにできるのかがわかりませんでした。ASIOのドライバーを利用して3ch対応アプリケーションをCppで作った申し訳ないのですが、業務の内容なので細かくお伝えすることはできません。その点ご了承ください。>'./build/Release/nodeAudioAsio'はどうやって入手できるのでしょうか?nodeJSのパッケージ管理ツールで依存関係を全て解決させた方がいい気がします。あれが足りないこれが足りないなんていうエラーはいらないタスクでしかありませんし、あまり有益でないので。npm経由で僕が提示したリポジトリをRequireしてみてください!(もし、ブラウザに組み込む標準JSのままでやろうと考えられているのであれば、ChromeやFirefoxなどのブラウザが対応するまで待つしかないでしょう)P.S.https://productforums.google.com/forum/#!topic/chrome-ja/G4KzekA74tcこちらのスレッドにある内容を見ている限り、環境依存っぽいですね。AbletonなどのDAW環境で3チャネルがきちんと動くか一度確認してみるとより一層対応策をねれるかと。P.S.Unityでむりやり3chに対応する方法を考えてみたことがあってそれが、以下の構造です。1)メインスレッドからRxもしくはCorutineを利用して並列スレッドインスタンスを3つ立ち上げる。2※optional)各スレッドのインターバルごとにブロックチェーンでタイムスレッドを監視3)各スレッドごとに別の端末を設定しておき音声データをQueueに入れる4)インターバル終了後Dequeue後音声をMix5)MixデータをOutputこれで最悪2ch以降の音声データを取得することは可能になったのですが、あくまでなんちゃって機能なので、非同期で回さないと重すぎてまず使い物にならないのと、ノイズがめっちゃ入るという点、あとはUnity上のテストなのでJsで同じようにできるかわからないこと。参考になるかわかんないですが試す価値はあるかと。申し訳ないのですが、業務の内容なので細かくお伝えすることはできません。その点ご了承ください。nodeJSのパッケージ管理ツールで依存関係を全て解決させた方がいい気がします。あれが足りないこれが足りないなんていうエラーはいらないタスクでしかありませんし、あまり有益でないので。こちらのスレッドにある内容を見ている限り、環境依存っぽいですね。AbletonなどのDAW環境で3チャネルがきちんと動くか一度確認してみるとより一層対応策をねれるかと。それが、以下の構造です。1)メインスレッドからRxもしくはCorutineを利用して並列スレッドインスタンスを3つ立ち上げる。なんちゃって機能なので、非同期で回さないと重すぎてまず使い物にならないのと、ノイズがめっちゃ入るという点、あとはUnity上のテストなのでJsで同じようにできるかわからないこと。参考になるかわかんないですが試す価値はあるかと。10:46kuramonさん>回答ありがとうございます。>AbletonなどのDAW環境で3チャネルがきちんと動くか一度確認してみるとより一層対応策をねれるかと。→手持ちのDAWソフトではオーディオインタフェース対応分のチャンネル数分の音声が取得できることを確認できました。教えていただいたnodeJSの方は検証中です。回答ありがとうございます。>AbletonなどのDAW環境で3チャネルがきちんと動くか一度確認してみるとより一層対応策をねれるかと。→手持ちのDAWソフトではオーディオインタフェース対応分のチャンネル数分の音声が取得できることを確認できました。教えていただいたnodeJSの方は検証中です。11:19ブラウザでは無理そうなのでネイティブのアプリの方向で行くことにしました。ありがとうございました。ブラウザでは無理そうなのでネイティブのアプリの方向で行くことにしました。ありがとうございました。頂いたご意見への回答は行っておりません。