我有一个场景,我在系统上有不同的声卡。我想以这样一种方式在不同的声卡上播放音频流,如果一个声卡正在播放音频,另一个将不会播放它。
假设我有 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.
在这种情况下,我将如何使用 Java 操作不同的声音驱动程序。
我使用的操作系统是 Windows。如果有人在这方面帮助我,我将不胜感激。
最佳答案
您需要使用 JNI 接口(interface)并将选择从 C++ 代码调用到 Windows API。枚举 Windows 设备的代码是 SetupDiGetClassDevs,它将允许您以编程方式选择任何控制面板设备。但是,您的 Java native 接口(interface)代码“Windows 模块”无法在 android 平板电脑上运行......
Windows 上的 Java 代码可移植到 AndroidStudio,因此您的绘图图形功能、对话框、按键/触摸监听器几乎是相同的。 Android 上不需要 JNI“Windows 模块”。 JNI for AndroidStudio 需要 64 位平台才能为 Android 设备编译 c++。所以AndroidStudio确实有一个JNI接口(interface);您只是无法调用 SetupDiGetClassDevs Windows 样式,因为 Android 是基于 Linux 的。
关于java - 如何在 Java for Windows 中选择和操作不同的音频驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47666461/