资源下载选择音频设备和播放.MP3 [英] Java select audio device and play .mp3

查看:244
本文介绍了资源下载选择音频设备和播放.MP3的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的电脑有3声卡。我可以选择,然后使用这个code播放.wav文件

My PC has 3 sound cards. I can select and then play a .wav file using this code

import javax.sound.sampled.*

AudioInputStream audioIn = AudioSystem.getAudioInputStream(url);

Mixer.Info[] arrMixerInfo = AudioSystem.getMixerInfo();

// Get a sound clip resource.
Clip clip = AudioSystem.getClip(arrMixerInfo[1]);

// Open audio clip and load samples from the audio input stream.
clip.open(audioIn);
clip.start();
clip.drain();
clip.close();

如何播放.MP3文件?

How can I play .mp3 file?

推荐答案

在Linux下,你可以使用mpg123的命令来播放mp3不同的声卡。

On Linux you can use mpg123 command to play mp3 on different soundcards.

public class SoundTest {
    public static void main(String[] args) {
    //play mp3
        try {
         //my first soundcard is CA0106 with id: CARD=CA0106
            java.lang.Process p1 = Runtime.getRuntime().exec(new String[]{"mpg123", "-asysdefault:CARD=CA0106", "audio/1.mp3"});
         //my second soundcard is CARD=Intel (internal motherboard souncard)
            java.lang.Process p2 = Runtime.getRuntime().exec(new String[]{"mpg123", "-asysdefault:CARD=Intel", "audio/2.mp3"});
        } catch (Exception e) {
            e.printStackTrace();
        }
    //play wav
        try {
        java.lang.Process p3 = Runtime.getRuntime().exec(new String[]{"aplay", "audio/audio1.wav", "-Dsysdefault:CARD=Intel"});
        java.lang.Process p4 = Runtime.getRuntime().exec(new String[]{"aplay", "audio/audio2.wav", "-Dsysdefault:CARD=CA0106"});
     } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

声卡的ID,您可以通过命令来获得 aplay -L
这不是一个Java的方式,但对我的工作非常有用。

Soundcard ids you can get via command aplay -L It's not a Java way but was useful for my task.

这篇关于资源下载选择音频设备和播放.MP3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆