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;
}
java类javax.sound.sampled.Mixer的实例源码
Microphone.java 文件源码
项目:BrainControl
阅读 24
收藏 0
点赞 0
评论 0
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");
}