java - 同时通过 2 个不同的声卡播放 2 首音乐

标签 java android audio usb soundcard

尝试一些开箱即用的东西...我有一个简单的应用程序,带有一个按钮,当按下该按钮时,会从我的 android 平板电脑的音频插孔中播放音乐。

public void btn1 (View view) {
    MediaPlayer mp = MediaPlayer.create(this, R.raw.xxx);
    mp.start();
}

我现在添加了一个 USB 音频接口(interface)(通过微型 USB 适配器),我可以听到它发出的声音。

我可以用这个列出声卡

AudioDeviceInfo[] devices = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS);

for (AudioDeviceInfo device : devices) {
    int b = device.getId();
    int d = device.getType();
    CharSequence productName = device.getProductName();
}

如何路由音乐,以便我可以同时播放 2 种不同的音乐,一种通过 USB 播放,另一种通过耳机插孔播放?

最佳答案

根据MediaPlayer 文档,您可以使用setPreferredDevice 来设置音频设备,它接收AudioDeviceInfo 作为参数,参见https://developer.android.com/reference/android/media/MediaPlayer.html#setPreferredDevice(android.media.AudioDeviceInfo) .

然后您必须创建一个 MediaPlayer 以在每台设备上播放。

关于java - 同时通过 2 个不同的声卡播放 2 首音乐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52138934/

相关文章:

javascript - 将音频保存到 localStorage 进行播放

java - 尝试通过拾取频率在 Canvas 上绘图 - 处理

java - 在子类中覆盖@jsonIgnore

java - 使用流畅的构建器模式,无需内部静态类的工作流程

java - 计算可 ScrollView 上具有特定资源 ID 的所有元素的数量

android - Jquery 手机 : How to show popup above a fixed footer?

android - 减少具有 .so 文件的 apk 大小

Javascript延迟后播放声音

java - 复杂对象的普通 Java 线程池与 Aparapi GPU

java - 虽然循环条件未给出预期结果