-1

我有一个场景,我在系统上有不同的声卡。我想以这样一种方式在不同的声卡上播放音频流,如果一个声卡正在播放音频,另一个将不会播放它。

假设我有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。如果有人在这方面帮助我,我将不胜感激。

4

1 回答 1

0

您需要使用 JNI 接口并将选择从 C++ 代码调用到 Windows API。枚举 Windows 设备的代码是 SetupDiGetClassDevs,它将允许您以编程方式选择任何控制面板设备。但是,您的 Java 本机接口代码“Windows 模块”无法在 Android 平板电脑上运行……Windows 上的 Java 代码可移植到 AndroidStudio,因此您的绘制图形功能、对话框、按键/触摸侦听器将基本相同。Android 上不需要 JNI“Windows 模块”。JNI for AndroidStudio 需要 64 位平台才能为 Android 设备编译 c++。所以AndroidStudio确实有一个JNI接口;您只是无法调用 SetupDiGetClassDevs Windows 样式,因为 Android 是基于 Linux 的。

于 2017-12-15T18:58:26.940 回答