3

私は音楽ゲームを開発しています。これはシングスターのようなものですが、歌う代わりにリコーダーを演奏する必要があります。それはoFluteと呼ばれ、まだ開発の初期段階にあります。

ゲームでは、マイク入力をキャプチャし、単純な FFT 分析を実行して、結果を一般的なレコーダーの周波数と比較し、演奏された音を取得します。

当初、使用していたオーディオ ライブラリはRtAudio でしたが、現在使用しているPortAudioに切り替えた理由は覚えていません。問題は、マイクから音が聞こえない場合のように、時々ランダムにクラッシュするか、キャプチャを停止することです。

私の質問は、Linux でマイク入力をキャプチャするための最良のオプションは何ですか? マイクからのバイト フローを開き、読み取り、閉じるだけです。

私はこのガイドを読んでいますが、(驚くべきことではありませんが)次のように書かれています。

PortAudio は、Unix ライクなオペレーティング システムにはあまり適した API ではないと思います。

それで、あなたは私に何を勧めますか?

4

1 に答える 1

4

他のオプションを考えると、PortAudio は奇妙な選択です。

個人的には、すべてを抽象化し、GStreamer を使用します。Linux では、オーディオがひどく混乱する可能性があります (長年の被害者として言えば)。Gstreamer に対処してもらうことで、そのことを忘れて先に進むことができ、もう一度考える必要がなくなります。

ただし、OpenAL はおそらくゲーム開発者にとって最も人気があり、ほとんどのシステムをサポートするはずです (ただし、PulseAudio でうまく動作させるのは「楽しい」でしょう)

私は確かにあなたが最も人気のあるセットアップ(現時点ではPulseAudioだと思います)のために開発していることを確認します.音が出ない件について。

そして、PulseAudio についてのナンセンスに耳を傾けないでください。これは新しいものであり、ベアボーンの ALSA システムよりも多くのリソースを消費する可能性がありますが、遅延の問題に悩まされているわけではありません。最近のデスクトップ ディストリビューションでは、非常に緊密に統合されている (そして便利でもある) ため、人々に削除を依頼することはできません。

于 2010-06-13T22:17:46.453 に答える