2017-12-06 9 views
-1

システムに異なるサウンドカードがあるシナリオがあります。あるサウンドカードがオーディオを再生している場合に他のサウンドカードが再生しないように、異なるサウンドカードでオーディオストリームを再生したい。Windows用Javaでさまざまなオーディオドライバを選択して操作する方法

レッツは、私がsoundcards A, B and C を持っていると言うと私は、オーディオストリームがAudio1,Audio2,Audio3

私はJavaを使用して、この場合の異なるサウンドドライバを操作する方法を

Soundcard A to play Audio2, meanwhile Soundcard B and C wont play the audio. 
Soundcard B to play Audio3, meanwhile Soundcard A and C wont play the audio. 
Soundcard A to play Audio2, meanwhile Soundcard A and B wont play the audio. 

を望んでいます。 私が使用しているOSはWindowsです。私は誰かがこの点で私を助けるならば、私は感謝します。

+0

これにJavaを使用しないでください。 –

+0

このシナリオを扱う必要があるアプリケーションはJavaベースであるため、Javaを使用するためには必要です。 –

+0

あなたの前提が間違っています。 Javaアプリケーションを扱っているという理由だけで、このプロジェクトのすべての部分をJavaを使用して実行する必要があるわけではありません。 –

答えて

0

JNIインターフェイスを使用し、C++コードからWindows APIに選択を呼び出す必要があります。列挙されたWindowsデバイスのコードはSetupDiGetClassDevsで、任意のコントロールパネルデバイスをプログラムで選択することができます。しかし、あなたのJava Native Interfaceコード "Windows module"はアンドロイドタブレットでは機能しません。 Windows上のJavaコードはAndroidStudioに移植可能で、ペイントグラフィックス機能、ダイアログボックス、キー/タッチリスナーはほとんど同じです。 JNIの「Windowsモジュール」はAndroidでは必要ありません。 AndroidStudioのJNIには、Androidデバイス用のC++をコンパイルするための64ビットプラットフォームが必要です。したがって、AndroidStudioは確かにJNIインターフェースを持っています。 AndroidがLinuxをベースにしているため、SetupDiGetClassDevsをWindowsスタイルで呼び出すことはできません。

+0

私のアプリケーションがAndriodベースではないJavaベースの場合、このソリューションは機能しますか? –

関連する問題