2017-12-06 3 views
-1

시스템에 다른 사운드 카드가있는 시나리오가 있습니다. 한 사운드 카드가 오디오를 재생하는 경우 다른 사운드 카드가 재생되지 않도록 다른 사운드 카드에서 오디오 스트림을 재생하고 싶습니다.Windows 용 Java에서 다른 오디오 드라이버를 선택하고 조작하는 방법

하자 내가 soundcards A, B and C 가 있다고 가정 그리고 오디오 스트림이 Audio1,Audio2,Audio3

내가 자바를 사용하여이 경우 다른 사운드 드라이버를 조작 할 방법

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

귀하의 가정이 잘못되었습니다. 자바 애플리케이션을 다루고 있다고해서이 프로젝트의 모든 부분이 자바를 사용하여 수행되어야한다는 것을 의미하지는 않습니다. –

답변

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 인터페이스를 가지고 있습니다. 안드로이드는 리눅스를 기반으로하기 때문에 SetupDiGetClassDevs Windows 스타일을 호출 할 수 없습니다.

+0

내 응용 프로그램이 Andriod 기반이 아닌 Java 기반 인 경우이 솔루션이 작동합니까? –

관련 문제