質問: openFrameWorksをubuntuで使っています。 マイクからの入力やスピーカーへの出力をしたいため、 ofSoundStreamを使用しているのですが、 ofSoundStream.setupをすると マイク入力を有効にした場合、他のソフトがマイクを使っているとエラーになり、 スピーカー出力を有効にした場合、他のソフトがスピーカーを使っているとエラーになってしまいます。 エラー文はどちらも 「RtApiAlsa::getDeviceInfo: snd_pcm_open error for device (hw:0,0), デバイスもしくはリソースがビジー状態です」 というものです。 いろいろ調べた結果、 http://d.hatena.ne.jp/gununu/20130826/1377500284 にある 「snd_pcm_openの引数に"hw:0,0"を渡す例が多くみられるがこれはデバイスを独占してしまうためお行儀がよろしくないと思われる。」 これが原因ではないかと思います。 また 「そこで出力先は"default"やミキサーの"plug:dmix"にするとよい。」 とも書かれているのですが、どのファイルのどこを変更すれば良いのかわかりません。 これを解決するにはどうすれば良いのでしょうか? 回答よろしくお願いします。 また、Cを覚えたばかりで単語の使い方が間違っているかもしれません。 間違った単語の使い方があれば、ご指摘いただけると嬉しいです。
回答: まんじゅ( ́ん`)と申します。 Ubuntuというワードだけで飛びついた門戸外ですが、思うにopenFrameworksの方でのサウンドデバイスの指定方法があるのだろうなと思います。(「それを教えて欲しいんだよ!」というご質問だったかもしれませんが......) 憶測 === とりあえずopenFrameworksのドキュメントをぼーっと見た限りでは、`ofSoundstream`クラスの中に`getDeviceList()`というメソッドがあるので、それで使えるデバイスの一覧がでるのかなと思います。 また、同クラスには`setDevice()`というメソッドがあるので、このメソッドを利用して出力先を指定するのかなと思われます。 いずれにしても、手元に環境が無い状態で検証せずに調べた限りでの意見なので、参考にならないかもしれませんが、なにかヒントになれば幸いです。 参考資料 ===== ofSoundStream | openFrameworks::getDeviceList() ofSoundStream | openFrameworks::setDevice()