2015-11-08 4 views
5

私の週末のプロジェクトでは、プログラム/プロセスがサウンドを出力するのを待つ単純なプログラムを作成しようとしています。擬似コードでJava - アプリケーションがサウンドを出力するかどうかを検出する

:手始めに

if (application.outputsSound()) { 
    /* Do something */ 
} 

が、それは、特定のアプリケーションから任意の音かもしれないが、それが格納されたオーディオファイルに基づいて、特定の音を検出する理由の中にいた場合、それは本当にクールになります。

私の考え: 私は何らかの種類のネイティブライブラリ(JNI/JNA)が必要だと思うが、私はそれを初めて使っているので、誰かが正しい方向に向けることができれば、本当にきれいだ。

+0

興味深い質問です。オーディオ処理のために呼び出すプロセスを取得するには、オーディオドライバまたは少なくともOSとインターフェイスする必要があると思います。 Javaで可能でなければなりませんが、C/C++ではより簡単ですが、私たちが話しているような低レベルのソフトウェアは、それらの言語でコーディングされているからです。 – Aaron

+1

現代のオペレーティングシステムでは、混合はユーザー空間プロセスデバイスドライバではなくオーディオサーバーとして機能します。それほど少なくなくても、これはプラットフォームに依存します。 – marko

答えて

0

Windowsでは、サードパーティのオーディオスタックはASIOのように、表示されませんよう、これは、完璧ではないですが、あなたは

https://msdn.microsoft.com/en-us/library/windows/desktop/dd368281(v=vs.85).aspx

IAudioSessionEnumeratorインタフェースを使用することができます。

Linuxでは、使用している環境の種類によって異なります。

関連する問題