PC から VOIP ソフトウェア (Ventrillo や Skype など) を使用しているときに音声とクリップをミックスできるように、ユーザーがマイク (録音デバイス) でサウンド クリップを再生できるようにするプログラムを作成したいと考えています。サウンド クリップをマイクで再生するとは、ユーザーがボタンを押すと、サウンド クリップが再生され、ユーザーと VOIP 接続の相手側の両方が聞くことができるということです。Windows でこれを行うには、どの API 関数を使用できますか?
1 に答える
「サウンドをマイクに再生する」ための標準 API はありません。つまり、アプリケーションがオーディオをキャプチャし、API を使用してオーディオ フィードを取得する場合、このプロセスにフックしてキャプチャしたオーディオをその場で更新する標準的な方法は定義されていません。これに加えて、いくつかのオーディオ API があり、実質的な違いがあります。
したがって、再生デバイスにサウンドを再生することは簡単であり、典型的なオーディオ API タスクであり、この質問のコンテキストでは特別な注意を払う必要さえありません。キャプチャされたオーディオ フィードの変更は、通常、キャプチャ アプリケーションのタスクです。データをキャプチャするとすぐに、アプリケーションはそれを自由に変更できます。特に、追加のフィードをそこに混ぜることができます。
リクエストが Skype などのサード パーティのオーディオ対応アプリケーションの動作を変更することであり、オーディオ パイプラインに直接フックする方法がない場合は、通常、柔軟性を備えた独自のフィードを生成する仮想オーディオ キャプチャ デバイスを実装する必要があります。実際にキャプチャされたデータと追加のコンテンツを混在させます。サードパーティ アプリケーションがそのような仮想デバイスから記録するように設定されている場合、事実上、デバイス/コンポーネントから直接データを取得し始めます。仮想オーディオ デバイスを作成するタスクは、複数の API が存在し、さまざまなアプリケーションが異なる API を使用してオーディオをキャプチャするという事実によって複雑になります。API によっては、仮想デバイスの作成が多かれ少なかれ困難になる場合があります。