java类javax.sound.sampled.Mixer的实例源码

Microphone.java 文件源码 项目:BrainControl 阅读 24 收藏 0 点赞 0 评论 0
public static HashMap<String, Line.Info> enumerateMicrophones() {
    HashMap<String, Line.Info> mics = new HashMap<String, Line.Info>();

    Mixer.Info[] mixerInfos = AudioSystem.getMixerInfo();
    for (Mixer.Info info : mixerInfos) {
        Mixer m = AudioSystem.getMixer(info);
        Line.Info[] lineInfos = m.getTargetLineInfo();
        if (lineInfos.length >= 1 && lineInfos[0].getLineClass().equals(TargetDataLine.class))
            mics.put(info.getName(), lineInfos[0]);
    }
    return mics;
}
Microphone.java 文件源码 项目:BrainControl 阅读 23 收藏 0 点赞 0 评论 0
/**
 * Gets the Mixer to use. Depends upon selectedMixerIndex being defined.
 *
 * @see #newProperties
 */
private Mixer getSelectedMixer() {
    if (selectedMixerIndex.equals("default")) {
        return null;
    } else {
        Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo();
        if (selectedMixerIndex.equals("last")) {
            return AudioSystem.getMixer(mixerInfo[mixerInfo.length - 1]);
        } else {
            int index = Integer.parseInt(selectedMixerIndex);
            return AudioSystem.getMixer(mixerInfo[index]);
        }
    }
}
Replay2.java 文件源码 项目:rcom 阅读 25 收藏 0 点赞 0 评论 0
public static void main(String[] args) throws IOException, LineUnavailableException {
    try(Scanner br=new Scanner(System.in))
    {
        String s=br.nextLine();
        byte[] data=UtilFile.loadFile(new File("/tmp/"+s+".sw"));
        System.out.println("Playing: "+s);
        AudioFormat format=ManualTestEchoCancel.getFormat();
        final Mixer mixer = AudioSystem.getMixer(null);
        Play p=new Play(mixer, format, ManualTestEchoCancel.frameSamples)
        {
        };
        p.start();
        p.setSample(data);
    }
}
SoundController.java 文件源码 项目:freecol 阅读 21 收藏 0 点赞 0 评论 0
/**
 * Get the label text for the sound player mixer.
 *
 * Needed by the audio mixer option UI.
 *
 * @return The text.
 */
public String getSoundMixerLabelText() {
    Mixer mixer;
    String text = (soundPlayer == null)
        ? Messages.message("nothing")
        : ((mixer = soundPlayer.getMixer()) == null)
            ? Messages.message("none")
            : mixer.getMixerInfo().getName();
    return Messages.message("current") + ":  " + text;
}
DirectAudioDeviceProvider.java 文件源码 项目:OpenJSharp 阅读 22 收藏 0 点赞 0 评论 0
public Mixer.Info[] getMixerInfo() {
    synchronized (DirectAudioDeviceProvider.class) {
        Mixer.Info[] localArray = new Mixer.Info[infos.length];
        System.arraycopy(infos, 0, localArray, 0, infos.length);
        return localArray;
    }
}
DirectAudioDeviceProvider.java 文件源码 项目:OpenJSharp 阅读 25 收藏 0 点赞 0 评论 0
public Mixer getMixer(Mixer.Info info) {
    synchronized (DirectAudioDeviceProvider.class) {
        // if the default device is asked, we provide the mixer
        // with SourceDataLine's
        if (info == null) {
            for (int i = 0; i < infos.length; i++) {
                Mixer mixer = getDevice(infos[i]);
                if (mixer.getSourceLineInfo().length > 0) {
                    return mixer;
                }
            }
        }
        // otherwise get the first mixer that matches
        // the requested info object
        for (int i = 0; i < infos.length; i++) {
            if (infos[i].equals(info)) {
                return getDevice(infos[i]);
            }
        }
    }
    throw new IllegalArgumentException("Mixer " + info.toString() + " not supported by this provider.");
}
PortMixerProvider.java 文件源码 项目:OpenJSharp 阅读 20 收藏 0 点赞 0 评论 0
public Mixer.Info[] getMixerInfo() {
    synchronized (PortMixerProvider.class) {
        Mixer.Info[] localArray = new Mixer.Info[infos.length];
        System.arraycopy(infos, 0, localArray, 0, infos.length);
        return localArray;
    }
}
PortMixerProvider.java 文件源码 项目:OpenJSharp 阅读 20 收藏 0 点赞 0 评论 0
public Mixer getMixer(Mixer.Info info) {
    synchronized (PortMixerProvider.class) {
        for (int i = 0; i < infos.length; i++) {
            if (infos[i].equals(info)) {
                return getDevice(infos[i]);
            }
        }
    }
    throw new IllegalArgumentException("Mixer " + info.toString()
                                       + " not supported by this provider.");
}
ResampleExample.java 文件源码 项目:rcom 阅读 21 收藏 0 点赞 0 评论 0
public static void main(String[] args) throws Exception {
        AbstractRcomArgs a=new AbstractRcomArgs();
        UtilCli.parse(a, args, true);
        File folder=new File("/home/rizsi/tmp/video");
        byte[] data=UtilFile.loadFile(new File(folder, "remote.sw"));
        AudioFormat format=ManualTestEchoCancel.getFormat();
        final Mixer mixer = AudioSystem.getMixer(null);
        DataLine.Info info2= new DataLine.Info(SourceDataLine.class, format);
        SourceDataLine s=(SourceDataLine) mixer.getLine(info2);
        s.open(format, framesamples*2);
        s.start();
        try(LoopInputStream lis=new LoopInputStream(data))
        {
            try(SpeexResampler resampler=new SpeexResampler(a, framesamples, new ResampledReceiver(s)))
            {
                final byte[] buffer=new byte[framesamples*2];;
                while(true)
                {
                    UtilStream.readFully(buffer, lis, buffer.length);
                    feed(resampler, buffer);
                }
            }
//          byte[] buffer=new byte[framesamples*2];
//          while(true)
//          {
//              UtilStream.readFully(buffer, resampled, buffer.length);
//          }
        }
    }
BogusMixers.java 文件源码 项目:openjdk-jdk10 阅读 30 收藏 0 点赞 0 评论 0
public static void main(String[] args) throws Exception {
    try {
        out("4667064: Java Sound provides bogus SourceDataLine and TargetDataLine");

        Mixer.Info[]    aInfos = AudioSystem.getMixerInfo();
        out("  available Mixers:");
        for (int i = 0; i < aInfos.length; i++) {
            if (aInfos[i].getName().startsWith("Java Sound Audio Engine")) {
                Mixer mixer = AudioSystem.getMixer(aInfos[i]);
                Line.Info[] tlInfos = mixer.getTargetLineInfo();
                for (int ii = 0; ii<tlInfos.length; ii++) {
                    if (tlInfos[ii].getLineClass() == DataLine.class) {
                        throw new Exception("Bogus TargetDataLine with DataLine info present!");
                    }
                }
            }
            if (aInfos[i].getName().startsWith("WinOS,waveOut,multi threaded")) {
                throw new Exception("Bogus mixer 'WinOS,waveOut,multi threaded' present!");
            }
            out(aInfos[i].getName());
        }
        if (aInfos.length == 0)
        {
            out("[No mixers available] - not a failure of this test case.");
        }
    } catch (Exception e) {
        e.printStackTrace();
        throw e;
    }
    out("Test passed");
}


问题


面经


文章

微信
公众号

扫码关注公众号