java类javax.sound.sampled.spi.MixerProvider的实例源码

AudioSystem.java 文件源码 项目:freeVM 阅读 20 收藏 0 点赞 0 评论 0
public static boolean isLineSupported(Line.Info info) {

        for (Iterator providers = ProviderService.getProviders(
                mixerProviderPath).iterator(); providers.hasNext();) {
            try {
                MixerProvider pr = (MixerProvider) providers.next();
                Mixer.Info[] mixinfos = pr.getMixerInfo();
                for (Mixer.Info mixinfo : mixinfos) {
                    Mixer mix = pr.getMixer(mixinfo);
                    if (mix.isLineSupported(info)) {
                        return true;
                    }
                }
            } catch (ClassCastException e) {}
        }
        return false;
    }
AudioSystem.java 文件源码 项目:freeVM 阅读 22 收藏 0 点赞 0 评论 0
public static Line.Info[] getSourceLineInfo(Line.Info info) {
    List<Line.Info> result = new ArrayList<Line.Info>();
    for (Iterator providers = ProviderService.getProviders(
            mixerProviderPath).iterator(); providers.hasNext();) {
        try {
            MixerProvider pr = (MixerProvider) providers.next();
            Mixer.Info[] mixinfos = pr.getMixerInfo();
            for (Mixer.Info mixinfo : mixinfos) {
                Mixer mix = pr.getMixer(mixinfo);
                Line.Info[] linfos = mix.getSourceLineInfo(info);
                for (Line.Info linfo : linfos) {
                    result.add(linfo);
                }
            }
        } catch (ClassCastException e) {}
    }
    Line.Info[] temp = new Line.Info[result.size()];
    return result.toArray(temp);
}
AudioSystem.java 文件源码 项目:freeVM 阅读 24 收藏 0 点赞 0 评论 0
public static Line.Info[] getTargetLineInfo(Line.Info info) {
    List<Line.Info> result = new ArrayList<Line.Info>();
    for (Iterator providers = ProviderService.getProviders(
            mixerProviderPath).iterator(); providers.hasNext();) {
        try {
            MixerProvider pr = (MixerProvider) providers.next();
            Mixer.Info[] mixinfos = pr.getMixerInfo();
            for (Mixer.Info mixinfo : mixinfos) {
                Mixer mix = pr.getMixer(mixinfo);
                Line.Info[] linfos = mix.getTargetLineInfo(info);
                for (Line.Info linfo : linfos) {
                    result.add(linfo);
                }
            }
        } catch (ClassCastException e) {}
    }
    Line.Info[] temp = new Line.Info[result.size()];
    return result.toArray(temp);
}
AudioSystem.java 文件源码 项目:freeVM 阅读 23 收藏 0 点赞 0 评论 0
public static boolean isLineSupported(Line.Info info) {

        for (Iterator providers = ProviderService.getProviders(
                mixerProviderPath).iterator(); providers.hasNext();) {
            try {
                MixerProvider pr = (MixerProvider) providers.next();
                Mixer.Info[] mixinfos = pr.getMixerInfo();
                for (Mixer.Info mixinfo : mixinfos) {
                    Mixer mix = pr.getMixer(mixinfo);
                    if (mix.isLineSupported(info)) {
                        return true;
                    }
                }
            } catch (ClassCastException e) {}
        }
        return false;
    }
AudioSystem.java 文件源码 项目:openjdk-icedtea7 阅读 22 收藏 0 点赞 0 评论 0
/**
 * Like getMixerInfo, but return List
 */
private static List getMixerInfoList(List providers) {
    List infos = new ArrayList();

    Mixer.Info[] someInfos; // per-mixer
    Mixer.Info[] allInfos;  // for all mixers

    for(int i = 0; i < providers.size(); i++ ) {
        someInfos = (Mixer.Info[])
            ((MixerProvider)providers.get(i)).getMixerInfo();

        for (int j = 0; j < someInfos.length; j++) {
            infos.add(someInfos[j]);
        }
    }

    return infos;
}
AudioSystem.java 文件源码 项目:OpenJSharp 阅读 23 收藏 0 点赞 0 评论 0
/** Return a MixerProvider of a given class from the list of
    MixerProviders.

    This method never requires the returned Mixer to do mixing.
    @param providerClassName The class name of the provider to be returned.
    @param providers The list of MixerProviders that is searched.
    @return A MixerProvider of the requested class, or null if none is
    found.
 */
private static MixerProvider getNamedProvider(String providerClassName,
                                              List providers) {
    for(int i = 0; i < providers.size(); i++) {
        MixerProvider provider = (MixerProvider) providers.get(i);
        if (provider.getClass().getName().equals(providerClassName)) {
            return provider;
        }
    }
    return null;
}
AudioSystem.java 文件源码 项目:OpenJSharp 阅读 22 收藏 0 点赞 0 评论 0
/** Return a Mixer with a given name from a given MixerProvider.
  This method never requires the returned Mixer to do mixing.
  @param mixerName The name of the Mixer to be returned.
  @param provider The MixerProvider to check for Mixers.
  @param info The type of line the returned Mixer is required to
  support.

  @return A Mixer matching the requirements, or null if none is found.
 */
private static Mixer getNamedMixer(String mixerName,
                                   MixerProvider provider,
                                   Line.Info info) {
    Mixer.Info[] infos = provider.getMixerInfo();
    for (int i = 0; i < infos.length; i++) {
        if (infos[i].getName().equals(mixerName)) {
            Mixer mixer = provider.getMixer(infos[i]);
            if (isAppropriateMixer(mixer, info, false)) {
                return mixer;
            }
        }
    }
    return null;
}
AudioSystem.java 文件源码 项目:OpenJSharp 阅读 23 收藏 0 点赞 0 评论 0
/** From a List of MixerProviders, return a Mixer with a given name.
    This method never requires the returned Mixer to do mixing.
    @param mixerName The name of the Mixer to be returned.
    @param providers The List of MixerProviders to check for Mixers.
    @param info The type of line the returned Mixer is required to
    support.
    @return A Mixer matching the requirements, or null if none is found.
 */
private static Mixer getNamedMixer(String mixerName,
                                   List providers,
                                   Line.Info info) {
    for(int i = 0; i < providers.size(); i++) {
        MixerProvider provider = (MixerProvider) providers.get(i);
        Mixer mixer = getNamedMixer(mixerName, provider, info);
        if (mixer != null) {
            return mixer;
        }
    }
    return null;
}
AudioSystem.java 文件源码 项目:OpenJSharp 阅读 23 收藏 0 点赞 0 评论 0
/** From a given MixerProvider, return the first appropriate Mixer.
    @param provider The MixerProvider to check for Mixers.
    @param info The type of line the returned Mixer is required to
    support.
    @param isMixingRequired If true, only Mixers that support mixing are
    returned for line types of SourceDataLine and Clip.

    @return A Mixer that is considered appropriate, or null
    if none is found.
 */
private static Mixer getFirstMixer(MixerProvider provider,
                                   Line.Info info,
                                   boolean isMixingRequired) {
    Mixer.Info[] infos = provider.getMixerInfo();
    for (int j = 0; j < infos.length; j++) {
        Mixer mixer = provider.getMixer(infos[j]);
        if (isAppropriateMixer(mixer, info, isMixingRequired)) {
            return mixer;
        }
    }
    return null;
}
AudioSystem.java 文件源码 项目:jdk8u-jdk 阅读 20 收藏 0 点赞 0 评论 0
/** Return a MixerProvider of a given class from the list of
    MixerProviders.

    This method never requires the returned Mixer to do mixing.
    @param providerClassName The class name of the provider to be returned.
    @param providers The list of MixerProviders that is searched.
    @return A MixerProvider of the requested class, or null if none is
    found.
 */
private static MixerProvider getNamedProvider(String providerClassName,
                                              List providers) {
    for(int i = 0; i < providers.size(); i++) {
        MixerProvider provider = (MixerProvider) providers.get(i);
        if (provider.getClass().getName().equals(providerClassName)) {
            return provider;
        }
    }
    return null;
}


问题


面经


文章

微信
公众号

扫码关注公众号