get Compatible Audio Mixers - Java javax.sound.sampled

Java examples for javax.sound.sampled:Audio

Description

get Compatible Audio Mixers

Demo Code

/**//from   ww w.  ja v  a 2  s.c  om
 * File AudioUtil.java
 * ---------------------------------------------------------
 *
 * Copyright (C) 2012 Martin Braun (martinbraun123@aol.com), (c) 1999 - 2001 by Matthias Pfisterer
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
 *
 * - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 * - The origin of the software must not be misrepresented.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 * TL;DR: As long as you clearly give me credit for this Software, you are free to use as you like, even in commercial software, but don't blame me
 *   if it breaks something.
 */
//package com.java2s;

import java.util.ArrayList;
import java.util.List;

import javax.sound.sampled.AudioSystem;

import javax.sound.sampled.Line;
import javax.sound.sampled.Mixer;
import javax.sound.sampled.Mixer.Info;

public class Main {
    public static void main(String[] argv) throws Exception {
        Class pLineClass = String.class;
        System.out.println(getCompatibleMixers(pLineClass));
    }

    public static List<Mixer> getCompatibleMixers(
            Class<? extends Line> pLineClass) {
        Line.Info lineInfo = new Line.Info(pLineClass);
        Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo();
        List<Mixer> ret = new ArrayList<>();
        for (Mixer.Info info : mixerInfo) {
            Mixer current = AudioSystem.getMixer(info);
            if (current.isLineSupported(lineInfo)) {
                ret.add(current);
            }
        }
        return ret;
    }

    /**
     * @return a mixer info object belonging to the Mixer named as pMixerName or
     *         null if not found
     */
    public static Mixer.Info getMixerInfo(String pMixerName) {
        Mixer.Info[] ret = AudioSystem.getMixerInfo();
        for (Info element : ret) {
            if (element.getName().equals(pMixerName)) {
                return element;
            }
        }
        return null;
    }
}

Related Tutorials