Java Examples for javax.sound.sampled.SourceDataLine
The following java examples will help you to understand the usage of javax.sound.sampled.SourceDataLine. These source code samples are taken from different open source projects.
Example 1
Project: Classeur-master File: SpeakerThread.java View source code |
private javax.sound.sampled.SourceDataLine getSpeaker(AudioFormat format, int bufsize) throws LineUnavailableException { javax.sound.sampled.DataLine.Info info; javax.sound.sampled.Mixer.Info[] infos; javax.sound.sampled.Mixer mixer; javax.sound.sampled.SourceDataLine speaker; infos = AudioSystem.getMixerInfo(); info = new javax.sound.sampled.DataLine.Info(javax.sound.sampled.SourceDataLine.class, format); for (int i = 0; i < infos.length; i++) { mixer = AudioSystem.getMixer(infos[i]); if (!(mixer instanceof uk.co.mmscomputing.sound.provider.Mixer)) { // System.err.println("SPEAKER : "+mixer.getMixerInfo().getName()); try { speaker = (javax.sound.sampled.SourceDataLine) mixer.getLine(info); speaker.open(format, bufsize); return speaker; } catch (IllegalArgumentException iae) { } catch (LineUnavailableException lue) { } } } throw new LineUnavailableException(getClass().getName() + ".run() : \n\tNo microphone available."); }
Example 2
Project: RSSOwl-master File: AudioUtils.java View source code |
private static void doPlay(String file) throws javax.sound.sampled.UnsupportedAudioFileException, IOException, javax.sound.sampled.LineUnavailableException { /* Open the Input-Stream to the Audio File */ javax.sound.sampled.AudioInputStream inS = null; try { inS = javax.sound.sampled.AudioSystem.getAudioInputStream(new File(file)); /* Retrieve Format to actually play the sound */ javax.sound.sampled.AudioFormat audioFormat = inS.getFormat(); /* Open a SourceDataLine for Playback */ javax.sound.sampled.DataLine.Info info = new javax.sound.sampled.DataLine.Info(javax.sound.sampled.SourceDataLine.class, audioFormat); javax.sound.sampled.SourceDataLine line = (javax.sound.sampled.SourceDataLine) javax.sound.sampled.AudioSystem.getLine(info); line.open(audioFormat); /* Activate the line */ line.start(); int read = 0; byte[] buf = new byte[1024]; while ((read = inS.read(buf, 0, buf.length)) != -1 && !Controller.getDefault().isShuttingDown()) line.write(buf, 0, read); line.drain(); line.close(); } finally { if (inS != null) inS.close(); } }
Example 3
Project: NavalBattle-master File: Music.java View source code |
public void playLoop() {
while (!this.stop) {
try {
this.stream = AudioSystem.getAudioInputStream(this.url);
this.decodedStream = null;
if (this.stream != null) {
this.format = this.stream.getFormat();
this.decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, this.format.getSampleRate(), 16, this.format.getChannels(), this.format.getChannels() * 2, this.format.getSampleRate(), false);
this.decodedStream = AudioSystem.getAudioInputStream(this.decodedFormat, this.stream);
}
} catch (Exception e) {
}
SourceDataLine line = null;
try {
line = this.getLine(this.decodedFormat);
} catch (LineUnavailableException lue) {
}
if (line != null) {
try {
byte[] data = new byte[4096];
line.start();
int nBytesRead = 0;
while (nBytesRead != -1) {
nBytesRead = this.decodedStream.read(data, 0, data.length);
if (nBytesRead != -1) {
line.write(data, 0, nBytesRead);
}
if (this.stop) {
break;
}
}
line.drain();
line.stop();
line.close();
this.decodedStream.close();
this.stream.close();
} catch (IOException io) {
}
}
}
}
Example 4
Project: pbi-master File: Speaker.java View source code |
private static void tone(int hz, int msecs, double vol) throws LineUnavailableException {
byte[] buf = new byte[1];
AudioFormat af = new // sampleRate
AudioFormat(// sampleRate
SAMPLE_RATE, // sampleSizeInBits
8, // channels
1, // signed
true, // bigEndian
false);
SourceDataLine sdl = AudioSystem.getSourceDataLine(af);
sdl.open(af);
sdl.start();
for (int i = 0; i < msecs * 8; i++) {
double angle = i / (SAMPLE_RATE / hz) * 2.0 * Math.PI;
buf[0] = (byte) (Math.sin(angle) * 127.0 * vol);
sdl.write(buf, 0, 1);
}
sdl.drain();
sdl.stop();
sdl.close();
}
Example 5
Project: vsminecraft-master File: VoiceOutput.java View source code |
@Override
public void run() {
try {
sourceLine = ((SourceDataLine) AudioSystem.getLine(speaker));
sourceLine.open(voiceClient.format, 2200);
sourceLine.start();
while (voiceClient.running) {
try {
short byteCount = voiceClient.input.readShort();
byte[] audioData = new byte[byteCount];
voiceClient.input.readFully(audioData);
sourceLine.write(audioData, 0, audioData.length);
} catch (Exception e) {
}
}
} catch (Exception e) {
Mekanism.logger.error("VoiceServer: Error while running client output thread.");
e.printStackTrace();
}
}
Example 6
Project: freedomotic-master File: AePlayWave.java View source code |
public void run() { File soundFile = new File(filename); if (!soundFile.exists()) { System.err.println("Wave file not found: " + filename); return; } AudioInputStream audioInputStream = null; try { audioInputStream = AudioSystem.getAudioInputStream(soundFile); } catch (UnsupportedAudioFileException e1) { e1.printStackTrace(); return; } catch (IOException e1) { e1.printStackTrace(); return; } AudioFormat format = audioInputStream.getFormat(); SourceDataLine auline = null; DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); try { auline = (SourceDataLine) AudioSystem.getLine(info); auline.open(format); } catch (LineUnavailableException e) { e.printStackTrace(); return; } catch (Exception e) { e.printStackTrace(); return; } if (auline.isControlSupported(FloatControl.Type.PAN)) { FloatControl pan = (FloatControl) auline.getControl(FloatControl.Type.PAN); if (curPosition == Position.RIGHT) { pan.setValue(1.0f); } else if (curPosition == Position.LEFT) { pan.setValue(-1.0f); } } auline.start(); int nBytesRead = 0; byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; try { while (nBytesRead != -1) { nBytesRead = audioInputStream.read(abData, 0, abData.length); if (nBytesRead >= 0) { auline.write(abData, 0, nBytesRead); } } } catch (IOException e) { e.printStackTrace(); return; } finally { auline.drain(); auline.close(); } }
Example 7
Project: javacuriosities-master File: AudioReceiver.java View source code |
private static void reproduce(byte soundbytes[]) { try { DataLine.Info dataLineInfo = new DataLine.Info(SourceDataLine.class, AudioFormatHelper.getAudioFormat()); // El source data line se usa para escribir datos en el SourceDataLine sourceDataLine = (SourceDataLine) AudioSystem.getLine(dataLineInfo); sourceDataLine.open(AudioFormatHelper.getAudioFormat()); sourceDataLine.start(); sourceDataLine.write(soundbytes, 0, soundbytes.length); sourceDataLine.drain(); sourceDataLine.close(); } catch (Exception e) { e.printStackTrace(); } }
Example 8
Project: jcodec-master File: AudioTest.java View source code |
public static void main1(String[] args) throws IOException, InterruptedException, LineUnavailableException {
// AudioSource tone = new WavAudioSource(new
// RandomAccessFileInputStream(new File(args[0])));
AudioSource tone = new ToneAudioSource();
AudioInfo audioInfo = tone.getAudioInfo();
AudioFormat af = audioInfo.getFormat();
DataLine.Info info = new DataLine.Info(SourceDataLine.class, tone.getAudioInfo().getFormat());
if (!AudioSystem.isLineSupported(info)) {
throw new RuntimeException("Line matching " + info + " not supported.");
}
Clip clip = AudioSystem.getClip();
ByteBuffer bb = ByteBuffer.allocate(af.getFrameSize() * 96000);
tone.getFrame(bb);
byte[] array = NIOUtils.toArray(bb);
clip.open(af, array, 0, array.length);
clip.start();
clip.drain();
clip.close();
}
Example 9
Project: jpc-master File: AudioLayer.java View source code |
public static boolean open(int bufferSize, int freq) { AudioFormat format = new AudioFormat(freq, 16, 2, true, false); try { DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); line = (SourceDataLine) AudioSystem.getLine(info); line.open(format, bufferSize); line.start(); audioThreadExit = false; audioThread = new Thread() { public void run() { while (!audioThreadExit) { boolean result; synchronized (Mixer.audioMutex) { result = Mixer.MIXER_CallBack(audioBuffer, audioBuffer.length); } if (result) line.write(audioBuffer, 0, audioBuffer.length); else { try { Thread.sleep(20); } catch (Exception e) { } } } } }; // this needs to be smaller than buffer size passed into open other line.write will block audioBuffer = new byte[512]; audioThread.start(); return true; } catch (Exception e) { e.printStackTrace(); return false; } }
Example 10
Project: Konsolenradio-master File: PlayerTest.java View source code |
private void rawplay(AudioFormat targetFormat, AudioInputStream din) throws IOException, LineUnavailableException {
byte[] data = new byte[4096];
SourceDataLine line = getLine(targetFormat);
if (line != null) {
// Start
line.start();
int nBytesRead = 0, nBytesWritten = 0;
while (nBytesRead != -1) {
nBytesRead = din.read(data, 0, data.length);
if (nBytesRead != -1)
nBytesWritten = line.write(data, 0, nBytesRead);
}
// Stop
line.drain();
line.stop();
line.close();
din.close();
}
}
Example 11
Project: loli.io-master File: MP3Player.java View source code |
private void rawplay(AudioFormat targetFormat, AudioInputStream din) throws IOException, LineUnavailableException {
byte[] data = new byte[4096];
SourceDataLine line = getLine(targetFormat);
if (line != null) {
// Start
line.start();
@SuppressWarnings("unused") int nBytesRead = 0, nBytesWritten = 0;
while (nBytesRead != -1) {
nBytesRead = din.read(data, 0, data.length);
if (nBytesRead != -1)
nBytesWritten = line.write(data, 0, nBytesRead);
}
// Stop
line.drain();
line.stop();
line.close();
din.close();
}
}
Example 12
Project: Mekanism-master File: VoiceOutput.java View source code |
@Override
public void run() {
try {
sourceLine = ((SourceDataLine) AudioSystem.getLine(speaker));
sourceLine.open(voiceClient.format, 2200);
sourceLine.start();
// less allocation/gc (if done outside the loop)
byte[] audioData = new byte[4096];
int byteCount;
int length;
while (voiceClient.running) {
try {
//Why would we only read signed shorts? negative amount of waiting data doesn't make sense anyway :D
byteCount = voiceClient.input.readUnsignedShort();
while (byteCount > 0 && voiceClient.running) {
length = audioData.length;
if (length > byteCount)
length = byteCount;
// That one returns the actual read amount of data (we can begin transferring even if input is waiting/incomplete)
length = voiceClient.input.read(audioData, 0, length);
if (length < 0)
throw new EOFException();
sourceLine.write(audioData, 0, length);
byteCount -= length;
}
} catch (EOFException eof) {
Mekanism.logger.error("VoiceServer: Unexpected input EOF Exception occured.");
break;
} catch (Exception e) {
}
}
} catch (Exception e) {
Mekanism.logger.error("VoiceServer: Error while running client output thread.");
e.printStackTrace();
}
}
Example 13
Project: myLib-master File: AdpcmPlayTest3D.java View source code |
// @Test public void test() throws Exception { SourceDataLine audioLine = null; // 44.1 kHz int samplingRate = 44100; // 16bit int bit = 16; AudioFormat format = new AudioFormat((float) samplingRate, bit, 1, true, false); // only for monoral here... DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); audioLine = (SourceDataLine) AudioSystem.getLine(info); audioLine.open(format); audioLine.start(); logger.info("start test"); // now, try to get data. decode adpcm, play. IFileReadChannel source = FileReadChannel.openFileReadChannel("http://49.212.39.17/gc-25-1-3.h264_adpcmimawav5k.mkv"); IContainer container = null; MkvTagReader reader = new MkvTagReader(); short fourth = 0; short third = 0; short second = 0; while ((container = reader.read(source)) != null) { if (container instanceof MkvBlockTag) { MkvBlockTag blockTag = (MkvBlockTag) container; IFrame frame = blockTag.getFrame(); if (frame instanceof AdpcmImaWavFrame) { AdpcmImaWavFrame aFrame = (AdpcmImaWavFrame) frame; // frame is available. IReadChannel frameData = new ByteReadChannel(aFrame.getData()); BitLoader loader = new BitLoader(frameData); // treat as little endian. loader.setLittleEndianFlg(true); Bit16 predictorData = new Bit16(); Bit8 indexData = new Bit8(); Bit8 reservedData = new Bit8(); loader.load(predictorData, indexData, reservedData); int predictor = (short) predictorData.get(); int index = indexData.get(); ; int step = imaStepTable[index]; // put the data on the buffer. ByteBuffer buffer = ByteBuffer.allocate(aFrame.getSampleNum() * 2); buffer.order(ByteOrder.LITTLE_ENDIAN); buffer.putShort((short) predictor); Bit4[] nibbleList = new Bit4[aFrame.getSampleNum() - 1]; for (int i = 0; i < nibbleList.length; i++) { nibbleList[i] = new Bit4(); } loader.load(nibbleList); for (Bit4 nibble : nibbleList) { index = nextIndex(index, nibble.get()); predictor = nextPredictor(index, nibble.get(), predictor, step); step = imaStepTable[index]; buffer.putShort((short) predictor); } buffer.flip(); ByteBuffer completeBuffer = ByteBuffer.allocate(buffer.remaining() * 8); completeBuffer.order(ByteOrder.LITTLE_ENDIAN); while (buffer.remaining() > 0) { short first = buffer.getShort(); double c0, c1, c2, d0, d1, e0; c0 = (third - fourth) / 8D; c1 = (second - third) / 8D; c2 = (first - second) / 8D; d0 = (c1 - c0) / 16D; d1 = (c2 - c1) / 16D; e0 = (d1 - d0) / 24D; completeBuffer.putShort((short) (third + (0) * (c0 + (0 - 8) * (d0 + e0 * (0 - 16))))); completeBuffer.putShort((short) (third + (1) * (c0 + (1 - 8) * (d0 + e0 * (1 - 16))))); completeBuffer.putShort((short) (third + (2) * (c0 + (2 - 8) * (d0 + e0 * (2 - 16))))); completeBuffer.putShort((short) (third + (3) * (c0 + (3 - 8) * (d0 + e0 * (3 - 16))))); completeBuffer.putShort((short) (third + (4) * (c0 + (4 - 8) * (d0 + e0 * (4 - 16))))); completeBuffer.putShort((short) (third + (5) * (c0 + (5 - 8) * (d0 + e0 * (5 - 16))))); completeBuffer.putShort((short) (third + (6) * (c0 + (6 - 8) * (d0 + e0 * (6 - 16))))); completeBuffer.putShort((short) (third + (7) * (c0 + (7 - 8) * (d0 + e0 * (7 - 16))))); fourth = third; third = second; second = first; } completeBuffer.flip(); audioLine.write(completeBuffer.array(), 0, completeBuffer.remaining()); } } } audioLine.drain(); audioLine.close(); audioLine = null; }
Example 14
Project: RemoteDesktopSharing-master File: VoiceChat.java View source code |
public void startCapture() { try { sock = new Socket(ipAddress, 50000); out = new BufferedOutputStream(sock.getOutputStream()); in = new BufferedInputStream(sock.getInputStream()); Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo(); System.out.println("Available mixers:"); for (int cnt = 0; cnt < mixerInfo.length; cnt++) { System.out.println(mixerInfo[cnt].getName()); } audioFormat = getAudioFormat(); DataLine.Info dataLineInfo = new DataLine.Info(TargetDataLine.class, audioFormat); for (int cnt = 0; cnt < mixerInfo.length; cnt++) { try { Mixer mixer = AudioSystem.getMixer(mixerInfo[cnt]); targetDataLine = (TargetDataLine) mixer.getLine(dataLineInfo); System.err.println(mixerInfo[cnt].getName()); break; } catch (Exception e) { continue; } } if (targetDataLine == null) { } targetDataLine.open(audioFormat); targetDataLine.start(); Thread captureThread = new CaptureThread(); captureThread.setName("Capture Thread Tx"); captureThread.start(); DataLine.Info dataLineInfo1 = new DataLine.Info(SourceDataLine.class, audioFormat); sourceDataLine = (SourceDataLine) AudioSystem.getLine(dataLineInfo1); sourceDataLine.open(audioFormat); sourceDataLine.start(); Thread playThread = new PlayThread(); playThread.setName("Play Thread TX"); playThread.start(); } catch (Exception e) { System.out.println(e); } }
Example 15
Project: SonicFieldRepo-master File: SF_StereoMonitor.java View source code |
@Override public Object Interpret(Object input) throws SFPL_RuntimeException { List<Object> lin = Caster.makeBunch(input); //$NON-NLS-1$ if (lin.size() != 2) throw new SFPL_RuntimeException(Messages.getString("SF_StereoMonitor.1")); try { SFSignal dataIn1a = Caster.makeSFSignal(lin.get(0)); SFSignal dataIn2a = Caster.makeSFSignal(lin.get(1)); SFSignal dataIn1 = SF_Normalise.doNormalisation(dataIn1a); SFSignal dataIn2 = SF_Normalise.doNormalisation(dataIn2a); AudioFormat af = new AudioFormat((float) SFConstants.SAMPLE_RATE, 16, 2, true, true); DataLine.Info info = new DataLine.Info(SourceDataLine.class, af); SourceDataLine source = (SourceDataLine) AudioSystem.getLine(info); source.open(af); source.start(); byte[] buf = new byte[dataIn1.getLength() * 4]; for (int i = 0; i < buf.length; ++i) { short sample = 0; if (i / 4 < dataIn1.getLength()) { sample = (short) (dataIn1.getSample(i / 4) * 32767.0); } buf[i] = (byte) (sample >> 8); buf[++i] = (byte) (sample & 0xFF); sample = 0; if (i / 4 < dataIn2.getLength()) { sample = (short) (dataIn2.getSample(i / 4) * 32767.0); } buf[++i] = (byte) (sample >> 8); buf[++i] = (byte) (sample & 0xFF); } source.write(buf, 0, buf.length); source.drain(); source.stop(); source.close(); List<SFSignal> ret = new ArrayList<>(); ret.add(dataIn1a); ret.add(dataIn2a); return ret; } catch (Exception e) { throw new SFPL_RuntimeException(Messages.getString("SF_Monitor.1"), e); } }
Example 16
Project: soundlibs-master File: PlayerTest.java View source code |
private void rawplay(AudioFormat targetFormat, AudioInputStream din) throws IOException, LineUnavailableException {
byte[] data = new byte[4096];
SourceDataLine line = getLine(targetFormat);
if (line != null) {
// Start
line.start();
int nBytesRead = 0, nBytesWritten = 0;
while (nBytesRead != -1) {
nBytesRead = din.read(data, 0, data.length);
if (nBytesRead != -1)
nBytesWritten = line.write(data, 0, nBytesRead);
}
// Stop
line.drain();
line.stop();
line.close();
din.close();
}
}
Example 17
Project: spacegraph1-master File: JavaSoundAudio.java View source code |
public void start() throws IOException { audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, fSampleRate, 16, 2, 4, fSampleRate, false); oscillator = new Oscillator(nWaveformType, fSignalFrequency, fAmplitude, audioFormat, AudioSystem.NOT_SPECIFIED); DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); try { line = (SourceDataLine) AudioSystem.getLine(info); line.open(audioFormat); } catch (Exception e) { e.printStackTrace(); } new Thread(this).start(); }
Example 18
Project: Sphinx-master File: AudioPlayer.java View source code |
/* Plays the AudioData in a separate thread. */ @Override public void run() { while (true) { try { synchronized (audio) { audio.wait(); AudioFormat format = audio.getAudioFormat(); short[] data = audio.getAudioData(); int start = Math.max(0, selectionStart); int end = selectionEnd; if (end == -1) { end = data.length; } DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); line = (SourceDataLine) AudioSystem.getLine(info); line.open(format); line.start(); byte[] frame = new byte[2]; for (int i = start; i < end && i < data.length; i++) { Utils.toBytes(data[i], frame, false); line.write(frame, 0, frame.length); } line.drain(); line.close(); line = null; } } catch (Exception e) { e.printStackTrace(); break; } } }
Example 19
Project: sphinx4-master File: AudioPlayer.java View source code |
/* Plays the AudioData in a separate thread. */ @Override public void run() { while (true) { try { synchronized (audio) { audio.wait(); AudioFormat format = audio.getAudioFormat(); short[] data = audio.getAudioData(); int start = Math.max(0, selectionStart); int end = selectionEnd; if (end == -1) { end = data.length; } DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); line = (SourceDataLine) AudioSystem.getLine(info); line.open(format); line.start(); byte[] frame = new byte[2]; for (int i = start; i < end && i < data.length; i++) { Utils.toBytes(data[i], frame, false); line.write(frame, 0, frame.length); } line.drain(); line.close(); line = null; } } catch (Exception e) { e.printStackTrace(); break; } } }
Example 20
Project: voipcall-master File: AudioDeviceScanner.java View source code |
private Set<Speaker> discoverSpeakers() { Set<Speaker> speakers = new HashSet<>(); for (Mixer.Info mixerinfo : AudioSystem.getMixerInfo()) { if (DEBUG) System.out.println("mixerinfo: " + mixerinfo); Mixer mixer = AudioSystem.getMixer(mixerinfo); if (DEBUG) System.out.println("mixer: " + mixer); if (DEBUG) System.out.println("mixerinfo: " + mixer.getLineInfo()); for (Line.Info lineinfo : mixer.getSourceLineInfo()) { try { Line line; line = mixer.getLine(lineinfo); if (line instanceof SourceDataLine) { if (DEBUG) System.out.println(" lineinfo: " + lineinfo); if (DEBUG) System.out.println(" line: " + line); if (DEBUG) System.out.println(" lineinfo: " + line.getLineInfo()); if (mixer.isLineSupported(lineinfo)) { speakers.add(new Speaker(new Speaker.Info(mixerinfo, mixer, lineinfo, (SourceDataLine) line))); } else { if (DEBUG) System.out.println(" NOT SUPPORTED!"); } } } catch (LineUnavailableException e) { e.printStackTrace(); } } } return speakers; }
Example 21
Project: Bonsai-Game-Library-master File: GameSound.java View source code |
public final boolean init() { final AudioFormat[] formats = new AudioFormat[] { new AudioFormat(44100.0f, 16, 2, true, false), new AudioFormat(22050.0f, 16, 2, true, false), new AudioFormat(11050.0f, 16, 2, true, false) }; for (AudioFormat format : formats) { try { DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info); line.open(format); line.start(); line.close(); return true; } catch (Exception e) { e.printStackTrace(); } } return false; }
Example 22
Project: ClothoBiofabEdition-master File: AePlayWave.java View source code |
@Override public void run() { FileObject fo = FileUtil.getConfigFile("org/clothocad/tool/bulltrowell/bull.wav"); InputStream istream = null; try { istream = fo.getInputStream(); } catch (FileNotFoundException ex) { ex.printStackTrace(); return; } AudioInputStream audioInputStream = null; try { audioInputStream = AudioSystem.getAudioInputStream(istream); } catch (UnsupportedAudioFileException e1) { e1.printStackTrace(); return; } catch (IOException e1) { e1.printStackTrace(); return; } AudioFormat format = audioInputStream.getFormat(); SourceDataLine auline = null; DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); try { auline = (SourceDataLine) AudioSystem.getLine(info); auline.open(format); } catch (LineUnavailableException e) { e.printStackTrace(); return; } catch (Exception e) { e.printStackTrace(); return; } if (auline.isControlSupported(FloatControl.Type.PAN)) { FloatControl pan = (FloatControl) auline.getControl(FloatControl.Type.PAN); if (curPosition == Position.RIGHT) pan.setValue(1.0f); else if (curPosition == Position.LEFT) pan.setValue(-1.0f); } auline.start(); int nBytesRead = 0; byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; try { while (nBytesRead != -1) { nBytesRead = audioInputStream.read(abData, 0, abData.length); if (nBytesRead >= 0) auline.write(abData, 0, nBytesRead); } } catch (IOException e) { e.printStackTrace(); return; } finally { auline.drain(); auline.close(); } }
Example 23
Project: Izou-master File: MixerAspect.java View source code |
/** * creates the appropriate IzouSoundLine if the request originates from an AddOn. * @param line the line * @return an IzouSoundLine if an addon requested the line */ static Line getAndRegisterLine(Line line) { AddOnModel addOnModel; Optional<AddOnModel> addOnModelForClassLoader = main.getSecurityManager().getAddOnModelForClassLoader(); if (!addOnModelForClassLoader.isPresent()) { logger.debug("the SoundManager will not manage this line, obtained by system"); return line; } else { addOnModel = addOnModelForClassLoader.get(); } IzouSoundLineBaseClass izouSoundLine; if (line instanceof SourceDataLine) { if (line instanceof Clip) { izouSoundLine = new IzouSoundLineClipAndSDLine((Clip) line, (SourceDataLine) line, main, false, addOnModel); } else { izouSoundLine = new IzouSoundSourceDataLine((SourceDataLine) line, main, false, addOnModel); } } else if (line instanceof Clip) { izouSoundLine = new IzouSoundLineClip((Clip) line, main, false, addOnModel); } else if (line instanceof DataLine) { izouSoundLine = new IzouSoundDataLine((DataLine) line, main, false, addOnModel); } else { izouSoundLine = new IzouSoundLineBaseClass(line, main, false, addOnModel); } main.getSoundManager().addIzouSoundLine(addOnModel, izouSoundLine); return izouSoundLine; }
Example 24
Project: JaC64-master File: AudioDriverSE.java View source code |
public void init(int sampleRate, int bufferSize) { // Allocate Audio resources AudioFormat af = new AudioFormat(sampleRate, 16, 1, true, false); DataLine.Info dli = new DataLine.Info(SourceDataLine.class, af, bufferSize); try { dataLine = (SourceDataLine) AudioSystem.getLine(dli); if (dataLine == null) System.out.println("DataLine: not existing..."); else { System.out.println("DataLine allocated: " + dataLine); dataLine.open(dataLine.getFormat(), bufferSize); volume = (FloatControl) dataLine.getControl(FloatControl.Type.MASTER_GAIN); setMasterVolume(100); // Startup the dataline dataLine.start(); } } catch (Exception e) { System.out.println("Problem while getting data line "); e.printStackTrace(); dataLine = null; } }
Example 25
Project: jucy-master File: AePlayWave.java View source code |
public void run() { Bundle bundle = Platform.getBundle(Application.PLUGIN_ID); Path path = new Path(filename); URL url = FileLocator.find(bundle, path, Collections.EMPTY_MAP); AudioInputStream audioInputStream = null; SourceDataLine auline = null; try { audioInputStream = AudioSystem.getAudioInputStream(new BufferedInputStream(url.openStream())); AudioFormat format = audioInputStream.getFormat(); DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); if (!AudioSystem.isLineSupported(info)) { return; } auline = (SourceDataLine) AudioSystem.getLine(info); auline.open(format); if (auline.isControlSupported(FloatControl.Type.PAN)) { FloatControl pan = (FloatControl) auline.getControl(FloatControl.Type.PAN); if (curPosition == Position.RIGHT) { pan.setValue(1.0f); } else if (curPosition == Position.LEFT) { pan.setValue(-1.0f); } } auline.start(); int nBytesRead = 0; byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; while (nBytesRead != -1) { nBytesRead = audioInputStream.read(abData, 0, abData.length); if (nBytesRead >= 0) { auline.write(abData, 0, nBytesRead); } } } catch (IOException e) { logger.warn(e, e); return; } catch (UnsupportedAudioFileException e) { logger.warn(e, e); } catch (LineUnavailableException e) { logger.warn(e, e); } finally { if (auline != null) { auline.drain(); auline.close(); } } }
Example 26
Project: marketcetera-master File: PlayWave.java View source code |
@Override public void run() { //$NON-NLS-1$ SLF4JLoggerProxy.debug(this, "Playing audio file: \"{0}\"", mFilename); File soundFile = new File(mFilename); if (!soundFile.exists()) { Messages.AUDIO_CANNOT_FIND_FILE.error(this, mFilename); return; } AudioInputStream audioInputStream = null; try { audioInputStream = AudioSystem.getAudioInputStream(soundFile); } catch (UnsupportedAudioFileException e) { SLF4JLoggerProxy.warn(this, e); return; } catch (IOException e) { SLF4JLoggerProxy.warn(this, e); return; } AudioFormat format = audioInputStream.getFormat(); SourceDataLine auline = null; DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); try { auline = (SourceDataLine) AudioSystem.getLine(info); auline.open(format); } catch (LineUnavailableException e) { SLF4JLoggerProxy.warn(this, e); return; } auline.start(); int nBytesRead = 0; byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; try { while (nBytesRead != -1) { nBytesRead = audioInputStream.read(abData, 0, abData.length); if (nBytesRead >= 0) auline.write(abData, 0, nBytesRead); } } catch (IOException e) { SLF4JLoggerProxy.warn(this, e); return; } finally { auline.drain(); auline.close(); } }
Example 27
Project: NearInfinity-master File: AudioPlayer.java View source code |
/** * Starts playback of audio data associated with the specified audio buffer. * @param audioBuffer AudioBuffer object containing audio data. * @throws Exception On error */ public void play(AudioBuffer audioBuffer) throws Exception { if (audioBuffer == null || audioBuffer.getAudioData() == null) return; setPlaying(true); setStopped(false); AudioInputStream ais = null; try { ais = AudioSystem.getAudioInputStream(new ByteArrayInputStream(audioBuffer.getAudioData())); } catch (UnsupportedAudioFileException e) { throw new Exception("Unsupported audio format"); } if (dataLine == null || !ais.getFormat().matches(audioFormat)) { audioFormat = ais.getFormat(); DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); if (!AudioSystem.isLineSupported(info)) { throw new Exception("Unsupported audio format"); } dataLine = (SourceDataLine) AudioSystem.getLine(info); dataLine.open(ais.getFormat(), 16384); } dataLine.start(); while (isPlaying()) { int numBytesRead = ais.read(buffer, 0, buffer.length); if (numBytesRead < 0) break; dataLine.write(buffer, 0, numBytesRead); } ais.close(); if (!isPlaying()) { dataLine.drain(); } setStopped(true); }
Example 28
Project: openjdk-master File: PhantomMixers.java View source code |
public static void main(String args[]) throws Exception { int SDLformats = 0; int TDLformats = 0; Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo(); for (int i = 0; i < mixerInfo.length; i++) { Mixer.Info thisMixerInfo = mixerInfo[i]; System.out.println("Mixer #" + i + ": " + thisMixerInfo.getName() + ": " + thisMixerInfo.getDescription()); Mixer mixer = AudioSystem.getMixer(thisMixerInfo); Line.Info[] srcLineInfo = mixer.getSourceLineInfo(); Line.Info[] dstLineInfo = mixer.getTargetLineInfo(); int count = srcLineInfo.length + dstLineInfo.length; System.out.print(" -> " + (srcLineInfo.length + dstLineInfo.length) + " line"); switch(count) { case 0: System.out.println("s"); break; case 1: System.out.println(""); break; default: System.out.println("s:"); break; } int l; for (l = 0; l < srcLineInfo.length; l++) { System.out.println(" " + srcLineInfo[l].toString()); if (srcLineInfo[l].getLineClass() == SourceDataLine.class && (srcLineInfo[l] instanceof DataLine.Info)) { SDLformats += ((DataLine.Info) srcLineInfo[l]).getFormats().length; } } for (l = 0; l < dstLineInfo.length; l++) { System.out.println(" " + dstLineInfo[l].toString()); if (dstLineInfo[l].getLineClass() == TargetDataLine.class && (dstLineInfo[l] instanceof DataLine.Info)) { TDLformats += ((DataLine.Info) dstLineInfo[l]).getFormats().length; } } } if (mixerInfo.length == 0) { System.out.println("[no mixers present]"); } System.out.println("" + SDLformats + " total formats for SourceDataLines"); System.out.println("" + TDLformats + " total formats for TargetDataLines"); System.out.println(""); System.out.println("If there are audio devices correctly installed on your"); System.out.println("system, you should see at least one Mixer, and in total"); System.out.println("at least each one SourceDataLine and TargetDataLine, both"); System.out.println("providing at least one format."); System.out.println(""); System.out.println("Now disable your soundcard and repeat the test."); System.out.println("The corresponding mixer(s) should not provide any formats"); System.out.println("anymore. If you disable all available soundcards"); System.out.println("on your computer, the number of formats above should be"); System.out.println("0 for both line types (although mixers are allowed to exist)."); }
Example 29
Project: QuickBuild-Tray-Monitor-master File: WavePlayer.java View source code |
@Override public void run() { AudioInputStream audioIn = null; try { audioIn = AudioSystem.getAudioInputStream(in); AudioFormat format = audioIn.getFormat(); SourceDataLine auline = null; DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); auline = (SourceDataLine) AudioSystem.getLine(info); auline.open(format); if (auline.isControlSupported(FloatControl.Type.PAN)) { FloatControl pan = (FloatControl) auline.getControl(FloatControl.Type.PAN); if (curPosition == Position.RIGHT) pan.setValue(1.0f); else if (curPosition == Position.LEFT) pan.setValue(-1.0f); } auline.start(); int nBytesRead = 0; byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; try { while (nBytesRead != -1 && !paused) { nBytesRead = audioIn.read(abData, 0, abData.length); if (nBytesRead >= 0) auline.write(abData, 0, nBytesRead); } } catch (IOException e) { e.printStackTrace(); return; } finally { auline.drain(); auline.close(); } } catch (UnsupportedAudioFileException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (LineUnavailableException e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(in); IOUtils.closeQuietly(audioIn); } }
Example 30
Project: sos-dendrogram-master File: FlatAudioPlayThread.java View source code |
@Override public boolean doPlaying() { AudioInputStream inStream; File audioFile = song.getAudioFile(); if (audioFile == null || !audioFile.exists() || !audioFile.isFile()) { System.err.println("No file given or file not found!"); return true; } try { inStream = AudioSystem.getAudioInputStream(audioFile); } catch (UnsupportedAudioFileException e2) { e2.printStackTrace(); return true; } catch (IOException e2) { e2.printStackTrace(); return true; } AudioFormat format = inStream.getFormat(); SourceDataLine auline = null; DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); try { auline = (SourceDataLine) AudioSystem.getLine(info); auline.open(format); } catch (LineUnavailableException e1) { e1.printStackTrace(); return true; } auline.start(); int nBytesRead = 0; byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; try { while (!stopPlaying && nBytesRead != -1) { nBytesRead = inStream.read(abData, 0, abData.length); if (nBytesRead >= 0) { auline.write(abData, 0, nBytesRead); } } } catch (IOException e) { e.printStackTrace(); return true; } finally { auline.drain(); auline.close(); } return !stopPlaying; }
Example 31
Project: stupidwarriors-master File: OggPlayer.java View source code |
public void play(String filePath) { final File file = new File(filePath); try (final AudioInputStream in = getAudioInputStream(file)) { final AudioFormat outFormat = getOutFormat(in.getFormat()); final Info info = new Info(SourceDataLine.class, outFormat); try (final SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info)) { if (line != null) { line.open(outFormat); line.start(); AudioInputStream inputMystream = AudioSystem.getAudioInputStream(outFormat, in); stream(inputMystream, line); line.drain(); line.stop(); } } } catch (UnsupportedAudioFileExceptionLineUnavailableException | IOException | e) { throw new IllegalStateException(e); } }
Example 32
Project: MDE-Web-Service-Front-End-master File: MultiWavePlayer.java View source code |
// end MultiWavePlayer /** * Allocates <code>line</code>, a new <code>SourceDataLine</code> for * this <code>MultiWavePlayer</code>. opens and Starts <code>line</code>. * Starts the player thread. * * @see gov.nasa.ial.mde.sound.MultiWavePlayer#line * @see javax.sound.sampled.SourceDataLine */ public void initLine() { DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); try { line = (SourceDataLine) AudioSystem.getLine(info); line.open(format, MultiWavePlayer.J_BUFF_SIZE); pan = (FloatControl) line.getControl(FloatControl.Type.PAN); }// end try catch (LineUnavailableException lue) { System.err.println("No audio line available; no sound will play."); return; } // end catch // starts the internal buffer-filling operation line.start(); // starts my buffer-filling thread doPlay(); }
Example 33
Project: ChromisPOS-master File: PlayWave.java View source code |
public void run() { File soundFile = new File(filename); if (!soundFile.exists()) { System.err.println("Wave file not found: " + filename); return; } AudioInputStream audioInputStream = null; try { audioInputStream = AudioSystem.getAudioInputStream(soundFile); } catch (UnsupportedAudioFileException e1) { e1.printStackTrace(); return; } catch (IOException e1) { e1.printStackTrace(); return; } AudioFormat format = audioInputStream.getFormat(); SourceDataLine auline = null; DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); try { auline = (SourceDataLine) AudioSystem.getLine(info); auline.open(format); } catch (LineUnavailableException e) { e.printStackTrace(); return; } catch (Exception e) { e.printStackTrace(); return; } if (auline.isControlSupported(FloatControl.Type.PAN)) { FloatControl pan = (FloatControl) auline.getControl(FloatControl.Type.PAN); if (curPosition == Position.RIGHT) pan.setValue(1.0f); else if (curPosition == Position.LEFT) pan.setValue(-1.0f); } auline.start(); int nBytesRead = 0; byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; try { while (nBytesRead != -1) { nBytesRead = audioInputStream.read(abData, 0, abData.length); if (nBytesRead >= 0) auline.write(abData, 0, nBytesRead); } } catch (IOException e) { e.printStackTrace(); return; } finally { auline.drain(); auline.close(); } }
Example 34
Project: classlib6-master File: SoftAudioPusher.java View source code |
public void run() {
byte[] buffer = SoftAudioPusher.this.buffer;
AudioInputStream ais = SoftAudioPusher.this.ais;
SourceDataLine sourceDataLine = SoftAudioPusher.this.sourceDataLine;
try {
while (active) {
// Read from audio source
int count = ais.read(buffer);
if (count < 0)
break;
// Write byte buffer to source output
sourceDataLine.write(buffer, 0, count);
}
} catch (IOException e) {
active = false;
}
}
Example 35
Project: etyllica-master File: AudioHandler.java View source code |
public synchronized void playAudio(byte[] audio, final AudioFormat format) { try { InputStream input = new ByteArrayInputStream(audio); final AudioInputStream ais = new AudioInputStream(input, format, audio.length / format.getFrameSize()); DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); final SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info); line.open(format); line.start(); Runnable runner = new Runnable() { int bufferSize = (int) format.getSampleRate() * format.getFrameSize(); byte buffer[] = new byte[bufferSize]; public void run() { try { int count; while ((count = ais.read(buffer, 0, buffer.length)) != -1) { if (count > 0) { //PlayAudio line.write(buffer, 0, count); } } line.drain(); line.close(); } catch (IOException e) { System.err.println("I/O problems: " + e); } } }; Thread playThread = new Thread(runner); playThread.start(); } catch (LineUnavailableException e) { System.err.println("Line unavailable: " + e); } }
Example 36
Project: gjtapi-master File: PlaybackURLConnection.java View source code |
/** * {@inheritDoc} */ public void connect() throws IOException { if (connected) { return; } // Get audio format that will open playback AudioFormat format = getAudioFormat(); // Representation of the line that will be opened DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); // Checks if line is supported if (!AudioSystem.isLineSupported(info)) { throw new IOException("Cannot open the requested line: " + info.toString()); } // Obtain, open and start the line. try { line = (SourceDataLine) AudioSystem.getLine(info); line.open(format, AudioSystem.NOT_SPECIFIED); // Starts the line line.start(); } catch (LineUnavailableException ex) { throw new IOException("Line is unavailable"); } // Marks this URLConnection as connected connected = true; }
Example 37
Project: ikvm-openjdk-master File: SoftAudioPusher.java View source code |
public void run() {
byte[] buffer = SoftAudioPusher.this.buffer;
AudioInputStream ais = SoftAudioPusher.this.ais;
SourceDataLine sourceDataLine = SoftAudioPusher.this.sourceDataLine;
try {
while (active) {
// Read from audio source
int count = ais.read(buffer);
if (count < 0)
break;
// Write byte buffer to source output
sourceDataLine.write(buffer, 0, count);
}
} catch (IOException e) {
active = false;
}
}
Example 38
Project: interval-music-compositor-master File: ExtractMusicPlayer.java View source code |
private void playPCM(AudioInputStream inputStream) { try { AudioFormat audioFormat = inputStream.getFormat(); DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info); line.open(audioFormat); line.start(); int nBytesRead = 0; byte[] abData = new byte[AUDIO_BUFFER_SIZE]; while (nBytesRead != -1 && play) { try { nBytesRead = inputStream.read(abData, 0, abData.length); } catch (IOException e) { addDebugMessage("Unable to read data stream: " + e.getMessage()); } if (nBytesRead >= 0) { line.write(abData, 0, nBytesRead); } } line.stop(); line.close(); play = false; clearStream(); } catch (LineUnavailableException e) { addDebugMessage("Unable to play music: " + e.getMessage()); } addDebugMessage("Stopped playing."); }
Example 39
Project: JavaX-master File: AudioPlayer.java View source code |
// playAudioFile /** Plays audio from the given audio input stream. */ public static void playAudioStream(AudioInputStream audioInputStream) { // Audio format provides information like sample rate, size, channels. AudioFormat audioFormat = audioInputStream.getFormat(); System.out.println("Play input audio format=" + audioFormat); // Open a data line to play our type of sampled audio. // Use SourceDataLine for play and TargetDataLine for record. DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); if (!AudioSystem.isLineSupported(info)) { System.out.println("Play.playAudioStream does not handle this type of audio on this system."); return; } try { // Create a SourceDataLine for play back (throws // LineUnavailableException). SourceDataLine dataLine = (SourceDataLine) AudioSystem.getLine(info); // System.out.println( "SourceDataLine class=" + dataLine.getClass() // ); // The line acquires system resources (throws // LineAvailableException). dataLine.open(audioFormat); // Adjust the volume on the output line. if (dataLine.isControlSupported(FloatControl.Type.MASTER_GAIN)) { FloatControl volume = (FloatControl) dataLine.getControl(FloatControl.Type.MASTER_GAIN); volume.setValue(100.0F); } // Allows the line to move data in and out to a port. dataLine.start(); // Create a buffer for moving data from the audio stream to the // line. int bufferSize = (int) audioFormat.getSampleRate() * audioFormat.getFrameSize(); byte[] buffer = new byte[bufferSize]; // Move the data until done or there is an error. try { int bytesRead = 0; while (bytesRead >= 0) { bytesRead = audioInputStream.read(buffer, 0, buffer.length); if (bytesRead >= 0) { // System.out.println( // "Play.playAudioStream bytes read=" + bytesRead + // ", frame size=" + audioFormat.getFrameSize() + // ", frames read=" + bytesRead / // audioFormat.getFrameSize() ); // Odd sized sounds throw an exception if we don't write // the same amount. int framesWritten = dataLine.write(buffer, 0, bytesRead); } // while } } catch (IOException e) { e.printStackTrace(); } System.out.println("Play.playAudioStream draining line."); // Continues data line I/O until its buffer is drained. dataLine.drain(); System.out.println("Play.playAudioStream closing line."); // Closes the data line, freeing any resources such as the audio // device. dataLine.close(); } catch (LineUnavailableException e) { e.printStackTrace(); } }
Example 40
Project: jdk7u-jdk-master File: DataLine_ArrayIndexOutOfBounds.java View source code |
static void testSDL(Mixer mixer, Scenario scenario) { log(" Testing SDL (scenario: " + scenario + ")..."); Line.Info linfo = new Line.Info(SourceDataLine.class); SourceDataLine line = null; try { line = (SourceDataLine) mixer.getLine(linfo); log(" got line: " + line); log(" open..."); line.open(); } catch (IllegalArgumentException ex) { log(" unsupported (IllegalArgumentException)"); return; } catch (LineUnavailableException ex) { log(" unavailable: " + ex); return; } total++; log(" start..."); line.start(); AsyncLineStopper lineStopper = new AsyncLineStopper(line, STOPPER_DELAY); int offset = scenario.getBufferOffset(line); int len = scenario.getBufferLength(line); // ensure len represents integral number of frames len -= len % line.getFormat().getFrameSize(); log(" write..."); lineStopper.schedule(); try { line.write(buffer, offset, len); log(" ERROR: didn't get ArrayIndexOutOfBoundsException"); failed++; } catch (ArrayIndexOutOfBoundsException ex) { log(" OK: got ArrayIndexOutOfBoundsException: " + ex); } lineStopper.force(); }
Example 41
Project: JVerge-master File: JavaSoundAudioDevice.java View source code |
// createSource fix. protected void createSource() throws JavaLayerException { Throwable t = null; try { Line line = AudioSystem.getLine(getSourceLineInfo()); if (line instanceof SourceDataLine) { source = (SourceDataLine) line; //source.open(fmt, millisecondsToBytes(fmt, 2000)); source.open(fmt); if (source.isControlSupported(FloatControl.Type.MASTER_GAIN)) { /** Rafael: Changed this block to set volume properly */ float db = (float) (Math.log(volume / 100) / Math.log(10.0) * 20.0); FloatControl c = (FloatControl) source.getControl(FloatControl.Type.MASTER_GAIN); c.setValue(db); } source.start(); } } catch (RuntimeException ex) { t = ex; } catch (LinkageError ex) { t = ex; } catch (LineUnavailableException ex) { t = ex; } if (source == null) throw new JavaLayerException("cannot obtain source audio line", t); }
Example 42
Project: JWildfire-master File: JWFAudioDevice.java View source code |
protected void createSource() throws JavaLayerException { Throwable t = null; try { Line line = AudioSystem.getLine(getSourceLineInfo()); if (line instanceof SourceDataLine) { source = (SourceDataLine) line; source.open(audioFormat); source.start(); } } catch (Throwable ex) { t = ex; } if (source == null) throw new JavaLayerException("Cannot obtain source audio line", t); }
Example 43
Project: ManagedRuntimeInitiative-master File: SoftAudioPusher.java View source code |
public void run() {
byte[] buffer = SoftAudioPusher.this.buffer;
AudioInputStream ais = SoftAudioPusher.this.ais;
SourceDataLine sourceDataLine = SoftAudioPusher.this.sourceDataLine;
try {
while (active) {
// Read from audio source
int count = ais.read(buffer);
if (count < 0)
break;
// Write byte buffer to source output
sourceDataLine.write(buffer, 0, count);
}
} catch (IOException e) {
active = false;
}
}
Example 44
Project: mpc_tp2-master File: JavaSoundAudioDevice.java View source code |
// createSource fix. protected void createSource() throws JavaLayerException { Throwable t = null; try { Line line = AudioSystem.getLine(getSourceLineInfo()); if (line instanceof SourceDataLine) { source = (SourceDataLine) line; //source.open(fmt, millisecondsToBytes(fmt, 2000)); source.open(fmt); /* if (source.isControlSupported(FloatControl.Type.MASTER_GAIN)) { FloatControl c = (FloatControl)source.getControl(FloatControl.Type.MASTER_GAIN); c.setValue(c.getMaximum()); }*/ source.start(); } } catch (RuntimeException ex) { t = ex; } catch (LinkageError ex) { t = ex; } catch (LineUnavailableException ex) { t = ex; } if (source == null) throw new JavaLayerException("cannot obtain source audio line", t); }
Example 45
Project: Musicdroid-deprecated-master File: JavaSoundThread.java View source code |
private void perform() throws LineUnavailableException { // JavaSound setup. int sampleSize = 2; AudioFormat audioFormat = new AudioFormat(sampleRate, 8 * sampleSize, outChans, true, true); DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); SourceDataLine sourceDataLine = (SourceDataLine) AudioSystem.getLine(info); sourceDataLine.open(audioFormat); sourceDataLine.start(); // Buffer setup for exchanging samples between libpd and JavaSound. // Question: Is this the best possible solution? It seems to involve too // much copying. int frames = PdBase.blockSize() * ticks; short[] dummy = new short[0]; short[] samples = new short[frames * outChans]; byte[] rawSamples = new byte[samples.length * sampleSize]; ByteBuffer buf = ByteBuffer.wrap(rawSamples); ShortBuffer shortBuf = buf.asShortBuffer(); while (// Note: sourceDataLine.write seems to clear the interrupted flag, and so Thread.interrupted() doesn't work here. !terminated) { PdBase.process(ticks, dummy, samples); shortBuf.rewind(); shortBuf.put(samples); sourceDataLine.write(rawSamples, 0, rawSamples.length); } // Shutdown. sourceDataLine.drain(); sourceDataLine.stop(); sourceDataLine.close(); }
Example 46
Project: openjdk8-jdk-master File: DataLine_ArrayIndexOutOfBounds.java View source code |
static void testSDL(Mixer mixer, Scenario scenario) { log(" Testing SDL (scenario: " + scenario + ")..."); Line.Info linfo = new Line.Info(SourceDataLine.class); SourceDataLine line = null; try { line = (SourceDataLine) mixer.getLine(linfo); log(" got line: " + line); log(" open..."); line.open(); } catch (IllegalArgumentException ex) { log(" unsupported (IllegalArgumentException)"); return; } catch (LineUnavailableException ex) { log(" unavailable: " + ex); return; } total++; log(" start..."); line.start(); AsyncLineStopper lineStopper = new AsyncLineStopper(line, STOPPER_DELAY); int offset = scenario.getBufferOffset(line); int len = scenario.getBufferLength(line); // ensure len represents integral number of frames len -= len % line.getFormat().getFrameSize(); log(" write..."); lineStopper.schedule(); try { line.write(buffer, offset, len); log(" ERROR: didn't get ArrayIndexOutOfBoundsException"); failed++; } catch (ArrayIndexOutOfBoundsException ex) { log(" OK: got ArrayIndexOutOfBoundsException: " + ex); } lineStopper.force(); }
Example 47
Project: partyplayer-master File: XugglePlayer.java View source code |
private void openJavaSound(IStreamCoder coder) { AudioFormat af = new AudioFormat(coder.getSampleRate(), (int) IAudioSamples.findSampleBitDepth(coder.getSampleFormat()), coder.getChannels(), true, false); DataLine.Info info = new DataLine.Info(SourceDataLine.class, af); try { mLine = (SourceDataLine) AudioSystem.getLine(info); mLine.open(af); mLine.start(); } catch (LineUnavailableException e) { throw new RuntimeException("Could not open data line"); } }
Example 48
Project: rtty_modem-master File: rtty.java View source code |
/** * @param args * @throws LineUnavailableException */ public static void main(String[] args) throws LineUnavailableException { // TODO Auto-generated method stub final ByteArrayOutputStream out = new ByteArrayOutputStream(); float sampleRate = 8000; int sampleSizeInBits = 8; int channels = 1; boolean signed = true; boolean bigEndian = true; final AudioFormat format = new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian); DataLine.Info info = new DataLine.Info(TargetDataLine.class, format); final TargetDataLine line = (TargetDataLine) AudioSystem.getLine(info); line.open(format); line.start(); Runnable runner = new Runnable() { int bufferSize = (int) format.getSampleRate() * format.getFrameSize(); byte buffer[] = new byte[bufferSize]; public void run() { try { int count = line.read(buffer, 0, buffer.length); if (count > 0) { out.write(buffer, 0, count); } out.close(); } catch (IOException e) { System.err.println("I/O problems: " + e); System.exit(-1); } } }; Thread captureThread = new Thread(runner); captureThread.start(); byte audio[] = out.toByteArray(); InputStream input = new ByteArrayInputStream(audio); final SourceDataLine line1 = (SourceDataLine) AudioSystem.getLine(info); final AudioInputStream ais = new AudioInputStream(input, format, audio.length / format.getFrameSize()); line1.open(format); line1.start(); runner = new Runnable() { int bufferSize = (int) format.getSampleRate() * format.getFrameSize(); byte buffer[] = new byte[bufferSize]; public void run() { try { int count; while ((count = ais.read(buffer, 0, buffer.length)) != -1) { if (count > 0) { line1.write(buffer, 0, count); } } line1.drain(); line1.close(); } catch (IOException e) { System.err.println("I/O problems: " + e); System.exit(-3); } } }; Thread playThread = new Thread(runner); playThread.start(); }
Example 49
Project: Soen6471Frinika-master File: OutputBufferTest.java View source code |
public void startAudioOutput() {
try {
lineOut = (SourceDataLine) AudioSystem.getMixer(currentMixer).getLine(infoOut);
if (standardLatency)
lineOut.open(format, bufferSize);
else
lineOut.open(format);
lineOut.start();
System.out.println("Buffersize: " + bufferSize + " / " + lineOut.getBufferSize());
} catch (Exception e) {
lineOut = null;
System.out.println("No audio output available. Use Audio Devices dialog to reconfigure.");
}
Thread thread = new Thread(this);
thread.setPriority(Thread.MAX_PRIORITY);
thread.start();
}
Example 50
Project: swip-master File: AdaptiveSpeakerOutput.java View source code |
// AudioOutputStream stream; private void init(AudioFormat format) { // tähän DataLine.Info lineInfo = new DataLine.Info(SourceDataLine.class, format); if (!AudioSystem.isLineSupported(lineInfo)) { System.err.println("ERROR: AudioLine not supported by this System."); } try { line = (SourceDataLine) AudioSystem.getLine(lineInfo); // if (DEBUG) println("SourceDataLine: "+source_line); // tähän voi lisätä buffer sizen line.open(format); Logger.debug("Line opened"); } catch (LineUnavailableException e) { System.err.println("ERROR: LineUnavailableException at AudioReceiver()"); e.printStackTrace(); } if (!line.isOpen()) { Logger.error("Linja on kiinni"); } /* else { line.start(); Logger.debug("Line started"); } */ }
Example 51
Project: TarsosTranscoder-master File: StreamerTester.java View source code |
/** * Play a random http stream. */ public void playStream() throws EncoderException, LineUnavailableException, IOException, UnsupportedAudioFileException, InterruptedException { String source; SourceDataLine line; DataLine.Info info; //The source stream source = "http://mp3.streampower.be/stubru-high.mp3"; source = "http://mp3.streampower.be/klara-high.mp3"; //Set the transcoding to WAV PCM, 16bits LE, 16789Hz (to make sure resampling is done). Attributes attributes = DefaultAttributes.WAV_PCM_S16LE_STEREO_44KHZ.getAttributes(); attributes.setSamplingRate(16789); //Stream the same file with on the fly decoding: AudioInputStream streamedAudioInputStream = Streamer.stream(source, attributes); AudioFormat audioFormat = Streamer.streamAudioFormat(attributes); byte[] streamBuffer = new byte[1024]; info = new DataLine.Info(SourceDataLine.class, audioFormat); line = (SourceDataLine) AudioSystem.getLine(info); line.open(audioFormat); line.start(); while (streamedAudioInputStream.available() > streamBuffer.length) { int bytesRead = streamedAudioInputStream.read(streamBuffer); int bytesWrote = line.write(streamBuffer, 0, streamBuffer.length); assertEquals("The number of bytes read should match the number of bytes written to the dataline", bytesRead, bytesWrote); } line.close(); streamedAudioInputStream.close(); }
Example 52
Project: Tira-Teima-master File: Som.java View source code |
private void playLocal() { File soundFile = new File(filename); if (!soundFile.exists()) { System.err.println("Wave file not found: " + filename); return; } AudioInputStream audioInputStream = null; try { audioInputStream = AudioSystem.getAudioInputStream(soundFile); } catch (UnsupportedAudioFileException e1) { e1.printStackTrace(); return; } catch (IOException e1) { e1.printStackTrace(); return; } AudioFormat format = audioInputStream.getFormat(); SourceDataLine auline = null; DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); try { auline = (SourceDataLine) AudioSystem.getLine(info); auline.open(format); } catch (LineUnavailableException e) { e.printStackTrace(); return; } catch (Exception e) { e.printStackTrace(); return; } if (auline.isControlSupported(FloatControl.Type.PAN)) { FloatControl pan = (FloatControl) auline.getControl(FloatControl.Type.PAN); if (curPosition == Position.RIGHT) pan.setValue(1.0f); else if (curPosition == Position.LEFT) pan.setValue(-1.0f); } auline.start(); int nBytesRead = 0; byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; try { while (nBytesRead != -1) { nBytesRead = audioInputStream.read(abData, 0, abData.length); if (nBytesRead >= 0) auline.write(abData, 0, nBytesRead); } } catch (IOException e) { e.printStackTrace(); return; } finally { auline.drain(); auline.close(); } }
Example 53
Project: Towel-master File: PlayingStreamed.java View source code |
/**
* Plays the noise.
*/
public void run() {
if (isFinished)
throw new IllegalStateException("Sound already played.");
SourceDataLine line = null;
try {
byte[] buffer = createStreamedBuffer();
line = createDataLine(buffer.length);
InputStream input = stream.newInputStream();
line.start();
int numBytesRead = 0;
while (numBytesRead != -1 && !isFinished()) {
if (isPaused()) {
Thread.yield();
continue;
}
numBytesRead = input.read(buffer, 0, buffer.length);
if (numBytesRead != -1)
line.write(buffer, 0, numBytesRead);
}
} catch (Exception e) {
} finally {
stop();
if (line != null) {
line.drain();
line.close();
}
}
}
Example 54
Project: VocabularyTrainerSuite-master File: AudioFilePlayer.java View source code |
public void playAudioFile(String urlString) { URL url; try { url = new URL(urlString); } catch (MalformedURLException ex) { ex.printStackTrace(); return; } try { AudioInputStream audioIn = AudioSystem.getAudioInputStream(url); } catch (UnsupportedAudioFileException ex) { Logger.getLogger(AudioFilePlayer.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(AudioFilePlayer.class.getName()).log(Level.SEVERE, null, ex); } SourceDataLine line = null; try (AudioInputStream ais = getAudioInputStream(url)) { AudioFormat audioFormat = getAudioFormat(ais.getFormat()); Info info = new Info(SourceDataLine.class, audioFormat); line = (SourceDataLine) AudioSystem.getLine(info); if (line != null) { line.open(audioFormat); line.start(); stream(getAudioInputStream(audioFormat, ais), line); line.drain(); line.stop(); line.close(); } } catch (IOException ex) { ex.printStackTrace(); } catch (UnsupportedAudioFileException ex) { ex.printStackTrace(); } catch (LineUnavailableException ex) { ex.printStackTrace(); } finally { if (line != null) line.close(); } }
Example 55
Project: ydkjx-master File: AudioPlayer.java View source code |
/** * @param filename the name of the file that is going to be played * @throws IOException * @throws UnsupportedAudioFileException * @throws FileNotFoundException * @throws LineUnavailableException */ public void playSound() throws FileNotFoundException, UnsupportedAudioFileException, IOException, LineUnavailableException { if (audio != null) { isPlayingFlag = true; InputStream snd = new ByteArrayInputStream(audio); audioStream = AudioSystem.getAudioInputStream(snd); audioFormat = audioStream.getFormat(); final byte[] data = new byte[4096]; try { SourceDataLine res = null; DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); res = (SourceDataLine) AudioSystem.getLine(info); res.open(audioFormat); sourceLine = res; // Start onPlay(); sourceLine.start(); int nBytesRead = 0; while ((nBytesRead != -1) && (!stopFlag)) { if (!pauseFlag) { isPlayingFlag = true; nBytesRead = audioStream.read(data, 0, data.length); if (nBytesRead != -1) { if (sourceLine.isControlSupported(FloatControl.Type.MASTER_GAIN)) { ((FloatControl) sourceLine.getControl(FloatControl.Type.MASTER_GAIN)).setValue(volume_dB); } sourceLine.write(data, 0, nBytesRead); } } else { isPlayingFlag = false; } } // Stop sourceLine.drain(); sourceLine.stop(); sourceLine.close(); audioStream.close(); } catch (LineUnavailableException e) { e.printStackTrace(); } isPlayingFlag = false; onStop(); } }
Example 56
Project: apes-master File: PlayerHandler.java View source code |
/** * Does some initialization such as fetching the line and getting volume * control. NOTE: {@link PlayerHandler#setInternalFormat setInternalFormat} * must be called before this. */ private void init() { try { AudioFormat format = new AudioFormat(internalFormat.getSampleRate(), internalFormat.bitsPerSample, internalFormat.getNumChannels(), true, false); DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); if (line != null) { line.close(); } line = (SourceDataLine) AudioSystem.getLine(info); line.open(format); line.start(); // Get volume control. gainControl = (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN); } catch (Exception e) { e.printStackTrace(); } }
Example 57
Project: cdt-master File: SoundAction.java View source code |
@Override public void run() { AudioInputStream soundStream; try { soundStream = AudioSystem.getAudioInputStream(soundFile); AudioFormat audioFormat = soundStream.getFormat(); DataLine.Info dataLineInfo = new DataLine.Info(SourceDataLine.class, audioFormat); SourceDataLine sourceDataLine = (SourceDataLine) AudioSystem.getLine(dataLineInfo); byte[] soundBuffer = new byte[5000]; sourceDataLine.open(audioFormat); sourceDataLine.start(); int dataCount = 0; while ((dataCount = soundStream.read(soundBuffer, 0, soundBuffer.length)) != -1) { if (dataCount > 0) { sourceDataLine.write(soundBuffer, 0, dataCount); } } sourceDataLine.drain(); sourceDataLine.close(); } catch (UnsupportedAudioFileException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (LineUnavailableException e) { e.printStackTrace(); } }
Example 58
Project: cdt-tests-runner-master File: SoundAction.java View source code |
public void run() { AudioInputStream soundStream; try { soundStream = AudioSystem.getAudioInputStream(soundFile); AudioFormat audioFormat = soundStream.getFormat(); DataLine.Info dataLineInfo = new DataLine.Info(SourceDataLine.class, audioFormat); SourceDataLine sourceDataLine = (SourceDataLine) AudioSystem.getLine(dataLineInfo); byte[] soundBuffer = new byte[5000]; sourceDataLine.open(audioFormat); sourceDataLine.start(); int dataCount = 0; while ((dataCount = soundStream.read(soundBuffer, 0, soundBuffer.length)) != -1) { if (dataCount > 0) { sourceDataLine.write(soundBuffer, 0, dataCount); } } sourceDataLine.drain(); sourceDataLine.close(); } catch (UnsupportedAudioFileException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (LineUnavailableException e) { e.printStackTrace(); } }
Example 59
Project: CollectiveFramework-master File: JavaSoundAudioDevice.java View source code |
// createSource fix. protected void createSource() throws JavaLayerException { Throwable t = null; try { Line line = AudioSystem.getLine(getSourceLineInfo()); if (line instanceof SourceDataLine) { source = (SourceDataLine) line; //source.open(fmt, millisecondsToBytes(fmt, 2000)); source.open(fmt); /* if (source.isControlSupported(FloatControl.Type.MASTER_GAIN)) { FloatControl c = (FloatControl)source.getControl(FloatControl.Type.MASTER_GAIN); c.setValue(c.getMaximum()); }*/ source.start(); } } catch (RuntimeException ex) { t = ex; } catch (LinkageError ex) { t = ex; } catch (LineUnavailableException ex) { t = ex; } if (source == null) throw new JavaLayerException("cannot obtain source audio line", t); }
Example 60
Project: dota2-sound-editor-master File: JavaSoundAudioDevice.java View source code |
// createSource fix. protected void createSource() throws JavaLayerException { Throwable t = null; try { Line line = AudioSystem.getLine(getSourceLineInfo()); if (line instanceof SourceDataLine) { source = (SourceDataLine) line; //source.open(fmt, millisecondsToBytes(fmt, 2000)); source.open(fmt); /* if (source.isControlSupported(FloatControl.Type.MASTER_GAIN)) { FloatControl c = (FloatControl)source.getControl(FloatControl.Type.MASTER_GAIN); c.setValue(c.getMaximum()); }*/ source.start(); } } catch (RuntimeException ex) { t = ex; } catch (LinkageError ex) { t = ex; } catch (LineUnavailableException ex) { t = ex; } if (source == null) throw new JavaLayerException("cannot obtain source audio line", t); }
Example 61
Project: EDMHouse-master File: JavaSoundAudioDevice.java View source code |
// createSource fix. protected void createSource() throws JavaLayerException { Throwable t = null; try { Line line = AudioSystem.getLine(getSourceLineInfo()); if (line instanceof SourceDataLine) { source = (SourceDataLine) line; //source.open(fmt, millisecondsToBytes(fmt, 2000)); source.open(fmt); /* if (source.isControlSupported(FloatControl.Type.MASTER_GAIN)) { FloatControl c = (FloatControl)source.getControl(FloatControl.Type.MASTER_GAIN); c.setValue(c.getMaximum()); }*/ source.start(); } } catch (RuntimeException ex) { t = ex; } catch (LinkageError ex) { t = ex; } catch (LineUnavailableException ex) { t = ex; } if (source == null) throw new JavaLayerException("cannot obtain source audio line", t); }
Example 62
Project: emul-master File: JavaSoundListener.java View source code |
/* (non-Javadoc) * */ public void started(SoundFormat format) { if (soundGeneratorLine != null) { if (soundFormat.equals(format)) return; stopped(); } soundQueue = new LinkedBlockingQueue<AudioChunk>(20); soundFormat = toAudioFormat(format); Line.Info slInfo = new DataLine.Info(SourceDataLine.class, soundFormat); if (!AudioSystem.isLineSupported(slInfo)) { logger.error("Line not supported: " + soundFormat); return; } try { int soundFramesPerTick = (int) (soundFormat.getFrameRate() / ticksPerSec); soundGeneratorLine = (SourceDataLine) AudioSystem.getLine(slInfo); soundGeneratorLine.open(soundFormat, soundFramesPerTick * 20 * 4); logger.debug("Sound format: " + soundFormat); } catch (LineUnavailableException e) { logger.error("Line not available"); e.printStackTrace(); return; } soundWritingThread = new Thread(new Runnable() { public void run() { while (true) { AudioChunk chunk = null; try { chunk = soundQueue.take(); } catch (InterruptedException e2) { return; } if (soundGeneratorLine == null) return; if (chunk.soundData != null) { soundGeneratorLine.write(chunk.soundData, 0, chunk.soundData.length); } } } }, "Sound Writing"); soundWritingThread.setDaemon(true); soundWritingThread.start(); soundGeneratorLine.start(); }
Example 63
Project: forplay-master File: PlayerTest.java View source code |
private void rawplay(AudioFormat targetFormat, AudioInputStream din) throws IOException, LineUnavailableException {
byte[] data = new byte[4096];
SourceDataLine line = getLine(targetFormat);
if (line != null) {
// Start
line.start();
int nBytesRead = 0, nBytesWritten = 0;
while (nBytesRead != -1) {
nBytesRead = din.read(data, 0, data.length);
if (nBytesRead != -1)
nBytesWritten = line.write(data, 0, nBytesRead);
}
// Stop
line.drain();
line.stop();
line.close();
din.close();
}
}
Example 64
Project: hypertron-velodyne-master File: Experiment2.java View source code |
public static void play(AudioInputStream ais, AudioFormat af, int nRepeats) { int nBytesRead = 0; int nBytesWritten = 0; ais.mark(LARGE_NUMBER); SourceDataLine line = null; DataLine.Info info = new DataLine.Info(SourceDataLine.class, af); try { line = (SourceDataLine) AudioSystem.getLine(info); line.open(af); } catch (LineUnavailableException e) { e.printStackTrace(); System.exit(1); } catch (Exception e) { e.printStackTrace(); System.exit(1); } byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; line.start(); for (int i = 0; i < nRepeats; i++) { nBytesRead = 0; while (nBytesRead != -1) { try { nBytesRead = ais.read(abData, 0, abData.length); } catch (IOException e) { e.printStackTrace(); } if (nBytesRead >= 0) { nBytesWritten = line.write(abData, 0, nBytesRead); } } try { ais.reset(); } catch (Exception e) { e.printStackTrace(); System.exit(1); } } line.drain(); line.close(); }
Example 65
Project: javac-master File: JavaFxPlayVideoAndAudio.java View source code |
@Override public void start(Stage primaryStage) throws Exception { StackPane root = new StackPane(); ImageView imageView = new ImageView(); root.getChildren().add(imageView); imageView.fitWidthProperty().bind(primaryStage.widthProperty()); imageView.fitHeightProperty().bind(primaryStage.heightProperty()); Scene scene = new Scene(root, 640, 480); primaryStage.setTitle("Video + audio"); primaryStage.setScene(scene); primaryStage.show(); playThread = new Thread(() -> { try { FFmpegFrameGrabber grabber = new FFmpegFrameGrabber("C:\\Users\\gda\\Desktop\\bunny_move\\1486430724718.mp4"); grabber.start(); AudioFormat audioFormat = new AudioFormat(44100, 16, 1, true, true); DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); SourceDataLine soundLine = (SourceDataLine) AudioSystem.getLine(info); soundLine.open(audioFormat); soundLine.start(); OpenCVFrameConverter converter = new OpenCVFrameConverter.ToIplImage(); Java2DFrameConverter paintConverter = new Java2DFrameConverter(); ExecutorService executor = Executors.newSingleThreadExecutor(); while (!Thread.interrupted()) { Frame frame = grabber.grab(); if (frame == null) { break; } if (frame.image != null) { Image image = SwingFXUtils.toFXImage(paintConverter.convert(frame), null); Platform.runLater(() -> { imageView.setImage(image); }); } else if (frame.samples != null) { FloatBuffer channelSamplesFloatBuffer = (FloatBuffer) frame.samples[0]; channelSamplesFloatBuffer.rewind(); ByteBuffer outBuffer = ByteBuffer.allocate(channelSamplesFloatBuffer.capacity() * 2); for (int i = 0; i < channelSamplesFloatBuffer.capacity(); i++) { /** * FloatBuffer is converted to ByteBuffer with some * magic constant SC16 (~Short.MAX_VALUE). I found * it on some forum with this explanation: * * For 16 bit signed to float, divide by 32768. For * float to 16 bit, multiply by 32768. * * Going from float to integer, do the initial * conversion into a container bigger than the * destination container so that it doesn't * accidentally wrap on overs. For instance, on 16 * or 24 bit, you can use signed int 32. * * Or alternately, do the clipping on the scaled * float value, before casting into integer. That * way you can save the clipped float direct to a 16 * bit container and not have to fool with an * intermediate 32 bit container. * * Clip the float to int results to stay in bounds. * Anything lower than 0x8000 clipped to 0x8000, and * anything higher than 0x7FFFF clipped to 0x7FFFF. * * The advantage of using a factor of 32768 is that * bit patterns will stay the same after conversion. * If you use 32767, the bit patterns will change. * Not much change, but it just doesn't seem elegant * to have them change if it can be avoided. * * If you want to do it as fast as possible it is * just a matter of optimizing the code in whatever * way seems sensible. */ // Could be replaced with: short val = (short) (channelSamplesFloatBuffer.get(i) * Short.MAX_VALUE); short val = (short) ((double) channelSamplesFloatBuffer.get(i) * SC16); outBuffer.putShort(val); } /** * We need this because soundLine.write ignores * interruptions during writing. */ try { executor.submit(() -> { soundLine.write(outBuffer.array(), 0, outBuffer.capacity()); outBuffer.clear(); }).get(); } catch (InterruptedException interruptedException) { Thread.currentThread().interrupt(); } } } executor.shutdownNow(); executor.awaitTermination(10, TimeUnit.SECONDS); soundLine.stop(); grabber.stop(); grabber.release(); Platform.exit(); } catch (Exception exception) { LOG.log(Level.SEVERE, null, exception); System.exit(1); } }); playThread.start(); }
Example 66
Project: javacv-master File: JavaFxPlayVideoAndAudio.java View source code |
@Override public void start(Stage primaryStage) throws Exception { StackPane root = new StackPane(); ImageView imageView = new ImageView(); root.getChildren().add(imageView); imageView.fitWidthProperty().bind(primaryStage.widthProperty()); imageView.fitHeightProperty().bind(primaryStage.heightProperty()); Scene scene = new Scene(root, 640, 480); primaryStage.setTitle("Video + audio"); primaryStage.setScene(scene); primaryStage.show(); playThread = new Thread(() -> { try { FFmpegFrameGrabber grabber = new FFmpegFrameGrabber("C:\\Users\\gda\\Desktop\\bunny_move\\1486430724718.mp4"); grabber.start(); AudioFormat audioFormat = new AudioFormat(44100, 16, 1, true, true); DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); SourceDataLine soundLine = (SourceDataLine) AudioSystem.getLine(info); soundLine.open(audioFormat); soundLine.start(); OpenCVFrameConverter converter = new OpenCVFrameConverter.ToIplImage(); Java2DFrameConverter paintConverter = new Java2DFrameConverter(); ExecutorService executor = Executors.newSingleThreadExecutor(); while (!Thread.interrupted()) { Frame frame = grabber.grab(); if (frame == null) { break; } if (frame.image != null) { Image image = SwingFXUtils.toFXImage(paintConverter.convert(frame), null); Platform.runLater(() -> { imageView.setImage(image); }); } else if (frame.samples != null) { FloatBuffer channelSamplesFloatBuffer = (FloatBuffer) frame.samples[0]; channelSamplesFloatBuffer.rewind(); ByteBuffer outBuffer = ByteBuffer.allocate(channelSamplesFloatBuffer.capacity() * 2); for (int i = 0; i < channelSamplesFloatBuffer.capacity(); i++) { /** * FloatBuffer is converted to ByteBuffer with some * magic constant SC16 (~Short.MAX_VALUE). I found * it on some forum with this explanation: * * For 16 bit signed to float, divide by 32768. For * float to 16 bit, multiply by 32768. * * Going from float to integer, do the initial * conversion into a container bigger than the * destination container so that it doesn't * accidentally wrap on overs. For instance, on 16 * or 24 bit, you can use signed int 32. * * Or alternately, do the clipping on the scaled * float value, before casting into integer. That * way you can save the clipped float direct to a 16 * bit container and not have to fool with an * intermediate 32 bit container. * * Clip the float to int results to stay in bounds. * Anything lower than 0x8000 clipped to 0x8000, and * anything higher than 0x7FFFF clipped to 0x7FFFF. * * The advantage of using a factor of 32768 is that * bit patterns will stay the same after conversion. * If you use 32767, the bit patterns will change. * Not much change, but it just doesn't seem elegant * to have them change if it can be avoided. * * If you want to do it as fast as possible it is * just a matter of optimizing the code in whatever * way seems sensible. */ // Could be replaced with: short val = (short) (channelSamplesFloatBuffer.get(i) * Short.MAX_VALUE); short val = (short) ((double) channelSamplesFloatBuffer.get(i) * SC16); outBuffer.putShort(val); } /** * We need this because soundLine.write ignores * interruptions during writing. */ try { executor.submit(() -> { soundLine.write(outBuffer.array(), 0, outBuffer.capacity()); outBuffer.clear(); }).get(); } catch (InterruptedException interruptedException) { Thread.currentThread().interrupt(); } } } executor.shutdownNow(); executor.awaitTermination(10, TimeUnit.SECONDS); soundLine.stop(); grabber.stop(); grabber.release(); Platform.exit(); } catch (Exception exception) { LOG.log(Level.SEVERE, null, exception); System.exit(1); } }); playThread.start(); }
Example 67
Project: JavaStuffs-master File: JavaSoundAudioDevice.java View source code |
// createSource fix. protected void createSource() throws JavaLayerException { Throwable t = null; try { Line line = AudioSystem.getLine(getSourceLineInfo()); if (line instanceof SourceDataLine) { source = (SourceDataLine) line; //source.open(fmt, millisecondsToBytes(fmt, 2000)); source.open(fmt); /* if (source.isControlSupported(FloatControl.Type.MASTER_GAIN)) { FloatControl c = (FloatControl)source.getControl(FloatControl.Type.MASTER_GAIN); c.setValue(c.getMaximum()); }*/ source.start(); } } catch (RuntimeException ex) { t = ex; } catch (LinkageError ex) { t = ex; } catch (LineUnavailableException ex) { t = ex; } if (source == null) throw new JavaLayerException("cannot obtain source audio line", t); }
Example 68
Project: jclic-master File: JavaSoundAudioDevice.java View source code |
// createSource fix. protected void createSource() throws JavaLayerException { Throwable t = null; try { Line line = AudioSystem.getLine(getSourceLineInfo()); if (line instanceof SourceDataLine) { source = (SourceDataLine) line; //source.open(fmt, millisecondsToBytes(fmt, 2000)); source.open(fmt); /* if (source.isControlSupported(FloatControl.Type.MASTER_GAIN)) { FloatControl c = (FloatControl)source.getControl(FloatControl.Type.MASTER_GAIN); c.setValue(c.getMaximum()); }*/ source.start(); } } catch (RuntimeException ex) { t = ex; } catch (LinkageError ex) { t = ex; } catch (LineUnavailableException ex) { t = ex; } if (source == null) throw new JavaLayerException("cannot obtain source audio line", t); }
Example 69
Project: jflac-dev-master File: SeekTablePlayer.java View source code |
/** * Process the StreamInfo block. * @param streamInfo the StreamInfo block * @see org.kc7bfi.jflac.PCMProcessor#processStreamInfo(org.kc7bfi.jflac.metadata.StreamInfo) */ public void processStreamInfo(StreamInfo streamInfo) { this.streamInfo = streamInfo; try { fmt = streamInfo.getAudioFormat(); info = new DataLine.Info(SourceDataLine.class, fmt, AudioSystem.NOT_SPECIFIED); line = (SourceDataLine) AudioSystem.getLine(info); line.open(fmt, AudioSystem.NOT_SPECIFIED); line.start(); } catch (LineUnavailableException e) { e.printStackTrace(); } }
Example 70
Project: JMediaPlayer-master File: PlayerTest.java View source code |
private void rawplay(AudioFormat targetFormat, AudioInputStream din) throws IOException, LineUnavailableException {
byte[] data = new byte[4096];
SourceDataLine line = getLine(targetFormat);
if (line != null) {
// Start
line.start();
int nBytesRead = 0, nBytesWritten = 0;
while (nBytesRead != -1) {
nBytesRead = din.read(data, 0, data.length);
if (nBytesRead != -1)
nBytesWritten = line.write(data, 0, nBytesRead);
}
// Stop
line.drain();
line.stop();
line.close();
din.close();
}
}
Example 71
Project: JNekounter-master File: Mp3Player.java View source code |
@Override protected Void doInBackground() throws Exception { AudioInputStream decodedInputStream = null; if (song != null && song.length() > 0) { try { AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(song); AudioFormat baseFormat = audioInputStream.getFormat(); AudioFormat decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, baseFormat.getSampleRate(), 16, baseFormat.getChannels(), baseFormat.getChannels() * 2, baseFormat.getSampleRate(), baseFormat.isBigEndian()); decodedInputStream = AudioSystem.getAudioInputStream(decodedFormat, audioInputStream); DataLine.Info info = new DataLine.Info(SourceDataLine.class, decodedFormat); souceDataline = (SourceDataLine) AudioSystem.getLine(info); if (souceDataline != null) { souceDataline.open(decodedFormat); byte[] data = new byte[4096]; souceDataline.start(); trackPlaying = true; int nBytesRead; while ((nBytesRead = decodedInputStream.read(data, 0, data.length)) != -1) { souceDataline.write(data, 0, nBytesRead); } souceDataline.drain(); souceDataline.stop(); souceDataline.close(); } } catch (UnsupportedAudioFileException e) { System.out.println("[Mp3Player.playMp3:UnsupportedAudioFileException]" + e.getMessage()); } catch (LineUnavailableException e) { System.out.println("[Mp3Player.playMp3:LineUnavailableException]" + e.getMessage()); } catch (IOException e) { System.out.println("[Mp3Player.playMp3:IOException]" + e.getMessage()); } finally { try { decodedInputStream.close(); } catch (IOException e) { System.out.println("[Mp3Player.finally.IOException]" + e.getMessage()); } } } return null; }
Example 72
Project: jogl-master File: JavaSoundAudioSink.java View source code |
@Override public boolean init(final AudioSink.AudioFormat requestedFormat, final float frameDuration, final int initialQueueSize, final int queueGrowAmount, final int queueLimit) { if (!staticAvailable) { return false; } // Create the audio format we wish to use format = new javax.sound.sampled.AudioFormat(requestedFormat.sampleRate, requestedFormat.sampleSize, requestedFormat.channelCount, requestedFormat.signed, !requestedFormat.littleEndian); // Create dataline info object describing line format info = new DataLine.Info(SourceDataLine.class, format); // Clear buffer initially Arrays.fill(sampleData, (byte) 0); try { // Get line to write data to auline = (SourceDataLine) AudioSystem.getLine(info); auline.open(format); auline.start(); System.out.println("JavaSound audio sink"); initialized = true; chosenFormat = requestedFormat; } catch (final Exception e) { initialized = false; } return true; }
Example 73
Project: josm-plugins-master File: EngineSound.java View source code |
public void start() { rpm = 0.3; speed = 0.0; n = 0; if (output != null) stop(); AudioFormat output_format = new AudioFormat(S_RATE, 16, 1, true, true); DataLine.Info info = new DataLine.Info(SourceDataLine.class, output_format); /* Get the data line, open it and initialise the device */ try { output = (SourceDataLine) AudioSystem.getLine(info); output.open(output_format); output.start(); frames_written = 0; reschedule(0); } catch (Exception e) { output = null; System.out.println("Audio not available: " + e.getClass().getSimpleName()); } }
Example 74
Project: jpcsp-master File: UmdBrowserSound.java View source code |
private boolean read(int codecType, AtracFileInfo atracFileInfo) { codec = CodecFactory.getCodec(codecType); if (codec == null) { return false; } int result = codec.init(atracFileInfo.atracBytesPerFrame, atracFileInfo.atracChannels, atracFileInfo.atracChannels, atracFileInfo.atracCodingMode); if (result < 0) { return false; } AudioFormat audioFormat = new AudioFormat(44100, 16, atracFileInfo.atracChannels, true, false); DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); try { mLine = (SourceDataLine) AudioSystem.getLine(info); mLine.open(audioFormat); } catch (LineUnavailableException e) { return false; } mLine.start(); inputOffset = atracFileInfo.inputFileDataOffset; inputPosition = inputOffset; inputBytesPerFrame = atracFileInfo.atracBytesPerFrame; channels = atracFileInfo.atracChannels; return true; }
Example 75
Project: jukefox-master File: JavaSoundAudioDevice.java View source code |
// createSource fix. protected void createSource() throws JavaLayerException { Throwable t = null; try { Line line = AudioSystem.getLine(getSourceLineInfo()); if (line instanceof SourceDataLine) { source = (SourceDataLine) line; //source.open(fmt, millisecondsToBytes(fmt, 2000)); source.open(fmt); /* if (source.isControlSupported(FloatControl.Type.MASTER_GAIN)) { FloatControl c = (FloatControl)source.getControl(FloatControl.Type.MASTER_GAIN); c.setValue(c.getMaximum()); }*/ source.start(); } } catch (RuntimeException ex) { t = ex; } catch (LinkageError ex) { t = ex; } catch (LineUnavailableException ex) { t = ex; } if (source == null) throw new JavaLayerException("cannot obtain source audio line", t); }
Example 76
Project: lol-jclient-master File: JavaSoundAudioDevice.java View source code |
// createSource fix. protected void createSource() throws JavaLayerException { Throwable t = null; try { Line line = AudioSystem.getLine(getSourceLineInfo()); if (line instanceof SourceDataLine) { source = (SourceDataLine) line; //source.open(fmt, millisecondsToBytes(fmt, 2000)); source.open(fmt); /* if (source.isControlSupported(FloatControl.Type.MASTER_GAIN)) { FloatControl c = (FloatControl)source.getControl(FloatControl.Type.MASTER_GAIN); c.setValue(c.getMaximum()); }*/ source.start(); } } catch (RuntimeException ex) { t = ex; } catch (LinkageError ex) { t = ex; } catch (LineUnavailableException ex) { t = ex; } if (source == null) throw new JavaLayerException("cannot obtain source audio line", t); }
Example 77
Project: mage-master File: LinePool.java View source code |
public void playSound(final MageClip mageClip) {
final SourceDataLine line;
synchronized (LinePool.this) {
log.debug("Playing {}", mageClip.getFilename());
logLineStats();
line = borrowLine();
if (line == null) {
// no lines available, queue sound to play it when a line is available
queue.add(mageClip);
log.debug("Sound {} queued.", mageClip.getFilename());
return;
}
logLineStats();
}
ThreadUtils.threadPool.submit(() -> {
synchronized (LinePool.this) {
try {
if (!line.isOpen()) {
line.open();
line.addLineListener( event -> {
log.debug("Event: {}", event);
if (event.getType() != Type.STOP) {
return;
}
synchronized (LinePool.this) {
log.debug("Before stop on line {}", line);
logLineStats();
returnLine(line);
log.debug("After stop on line {}", line);
logLineStats();
MageClip queuedSound = queue.poll();
if (queuedSound != null) {
log.debug("Playing queued sound {}", queuedSound);
playSound(queuedSound);
}
}
});
}
line.start();
} catch (LineUnavailableException e) {
log.warn("Failed to open line", e);
}
}
byte[] buffer = mageClip.getBuffer();
log.debug("Before write to line {}", line);
line.write(buffer, 0, buffer.length);
line.drain();
line.stop();
log.debug("Line completed: {}", line);
});
}
Example 78
Project: mediaserver-master File: SoundCard.java View source code |
@Override public void onMediaTransfer(Frame frame) throws IOException { System.out.println("Receive " + frame.getFormat() + ", len=" + frame.getLength() + ", header=" + frame.getHeader()); if (first) { first = false; AudioFormat fmt = (AudioFormat) frame.getFormat(); if (fmt == null) { return; } float sampleRate = (float) fmt.getSampleRate(); int sampleSizeInBits = fmt.getSampleSize(); int channels = fmt.getChannels(); int frameSize = (fmt.getSampleSize() / 8); //float frameRate = 1; boolean bigEndian = false; Encoding encoding = getEncoding(fmt.getName().toString()); frameSize = (channels == AudioSystem.NOT_SPECIFIED || sampleSizeInBits == AudioSystem.NOT_SPECIFIED) ? AudioSystem.NOT_SPECIFIED : ((sampleSizeInBits + 7) / 8) * channels; audioFormat = new javax.sound.sampled.AudioFormat(encoding, sampleRate, sampleSizeInBits, channels, frameSize, sampleRate, bigEndian); // FIXME : Need a configuration to select the specific hardware DataLine.Info dataLineInfo = new DataLine.Info(SourceDataLine.class, audioFormat); // beforehand. try { sourceDataLine = (SourceDataLine) AudioSystem.getLine(dataLineInfo); sourceDataLine.open(audioFormat); sourceDataLine.start(); } catch (Exception e) { this.stop(); logger.error(e); } } // FIXME : write() will block till all bytes are written. Need async operation here. byte[] data = frame.getData(); try { sourceDataLine.write(data, frame.getOffset(), frame.getLength()); } catch (RuntimeException e) { logger.error(e); } }
Example 79
Project: MineTunes-master File: JavaSoundAudioDevice.java View source code |
// createSource fix. protected void createSource() throws JavaLayerException { Throwable t = null; try { Line line = AudioSystem.getLine(getSourceLineInfo()); if (line instanceof SourceDataLine) { source = (SourceDataLine) line; //source.open(fmt, millisecondsToBytes(fmt, 2000)); source.open(fmt); /* if (source.isControlSupported(FloatControl.Type.MASTER_GAIN)) { FloatControl c = (FloatControl)source.getControl(FloatControl.Type.MASTER_GAIN); c.setValue(c.getMaximum()); }*/ source.start(); // XXX ~Vazkii setGain(ThreadMusicPlayer.gain); } } catch (RuntimeException ex) { t = ex; } catch (LinkageError ex) { t = ex; } catch (LineUnavailableException ex) { t = ex; } if (source == null) throw new JavaLayerException("cannot obtain source audio line", t); }
Example 80
Project: Minim-master File: JSStreamingSampleRecorder.java View source code |
/**
* Finishes the recording process by closing the file.
*/
public AudioRecordingStream save() {
try {
aos.close();
} catch (IOException e) {
Minim.error("AudioRecorder.save: An error occurred when trying to save the file:\n" + e.getMessage());
}
String filePath = filePath();
AudioInputStream ais = system.getAudioInputStream(filePath);
SourceDataLine sdl = system.getSourceDataLine(ais.getFormat(), 1024);
// this is fine because the recording will always be
// in a raw format (WAV, AU, etc).
long length = AudioUtils.frames2Millis(ais.getFrameLength(), format);
BasicMetaData meta = new BasicMetaData(filePath, length, ais.getFrameLength());
JSPCMAudioRecordingStream recording = new JSPCMAudioRecordingStream(system, meta, ais, sdl, 1024);
return recording;
}
Example 81
Project: mobicents-master File: PlayerImpl.java View source code |
@Override public void onMediaTransfer(Buffer buffer) throws IOException { if (first) { first = false; AudioFormat fmt = (AudioFormat) buffer.getFormat(); float sampleRate = (float) fmt.getSampleRate(); int sampleSizeInBits = fmt.getSampleSizeInBits(); int channels = fmt.getChannels(); int frameSize = (fmt.getFrameSizeInBits() / 8); float frameRate = (float) fmt.getFrameRate(); boolean bigEndian = fmt.getEndian() == 1; Encoding encoding = getEncoding(fmt.getEncoding()); frameSize = (channels == AudioSystem.NOT_SPECIFIED || sampleSizeInBits == AudioSystem.NOT_SPECIFIED) ? AudioSystem.NOT_SPECIFIED : ((sampleSizeInBits + 7) / 8) * channels; audioFormat = new javax.sound.sampled.AudioFormat(encoding, sampleRate, sampleSizeInBits, channels, frameSize, sampleRate, bigEndian); // FIXME : Need a configuration to select the specific hardware DataLine.Info dataLineInfo = new DataLine.Info(SourceDataLine.class, audioFormat); // beforehand. try { sourceDataLine = (SourceDataLine) AudioSystem.getLine(dataLineInfo); sourceDataLine.open(audioFormat); sourceDataLine.start(); } catch (LineUnavailableException e) { logger.error(e); this.failed(NotifyEvent.RX_FAILED, e); this.stop(); } catch (IllegalArgumentException e) { logger.error(e); this.failed(NotifyEvent.RX_FAILED, e); this.stop(); } } // FIXME : write() will block till all bytes are written. Need async operation here. try { sourceDataLine.write((byte[]) buffer.getData(), buffer.getOffset(), buffer.getLength()); } catch (IllegalArgumentException e) { logger.error(e); } catch (ArrayIndexOutOfBoundsException e) { logger.error(e); } }
Example 82
Project: openblocks-master File: BeepGenerator.java View source code |
public synchronized void start() {
wavePhase = 0;
beepPhase = 0;
if (!isRunning()) {
final AudioFormat af = new AudioFormat(SAMPLE_RATE, 8 * BYTES_PER_SAMPLE, 1, true, true);
try {
SourceDataLine line = AudioSystem.getSourceDataLine(af);
line.open(af, SAMPLE_RATE);
writerThread = new WriterThread(line);
writerThread.start();
} catch (LineUnavailableException e) {
Log.warn(e, "Failed to initialize beeper");
if (writerThread != null)
writerThread.shutdown();
}
}
}
Example 83
Project: orcc-master File: Audio.java View source code |
public static void audio_initAudioFormat(BigInteger SampleRate, BigInteger SampleSizeInBits, BigInteger Channels) { if (SampleSizeInBits.intValue() == 8) { audioFormat = new AudioFormat(SampleRate.floatValue(), SampleSizeInBits.intValue(), Channels.intValue(), false, false); } else { audioFormat = new AudioFormat(SampleRate.floatValue(), SampleSizeInBits.intValue(), Channels.intValue(), true, false); } info = new DataLine.Info(SourceDataLine.class, audioFormat); if (AudioSystem.isLineSupported(info)) { try { line = (SourceDataLine) AudioSystem.getLine(info); line.open(audioFormat); } catch (LineUnavailableException e) { e.printStackTrace(); System.exit(1); } catch (Exception e) { e.printStackTrace(); System.exit(1); } } else { System.out.println("Format of the file is incorrect (only 8 or 16 bits per sample are supported)."); } }
Example 84
Project: Picklr-master File: RadioUtils.java View source code |
/* * This takes a decoded buffered audio input stream and format, and plays it */ public static void rawplay(AudioFormat targetFormat, AudioInputStream decodedInput) throws IOException, LineUnavailableException { byte[] data = new byte[4096]; // Create the source data line SourceDataLine sourceDataLine = (SourceDataLine) AudioSystem.getLine(new DataLine.Info(SourceDataLine.class, targetFormat)); // Open the line with the specified format sourceDataLine.open(targetFormat); // If the source data line has been successfully established if (sourceDataLine != null) { // Start sourceDataLine.start(); // Set the data remaining indicator to 0 int bytesRead = 0; // This is used to control the volume/master gain gainControl = (FloatControl) sourceDataLine.getControl(FloatControl.Type.MASTER_GAIN); // Set the gain to the saved default gainControl.setValue(-1.0F); // while there is new data still remaining to read while (bytesRead != -1) { // read the input data stream bytesRead = decodedInput.read(data, 0, data.length); // assuming there is new data, write it out to the data line if (bytesRead != -1) { sourceDataLine.write(data, 0, bytesRead); } } // Stop playing sourceDataLine.drain(); sourceDataLine.stop(); // Close up resources to avoid leaks sourceDataLine.close(); decodedInput.close(); } }
Example 85
Project: PixelUtilities-master File: SoundChip.java View source code |
/** Initialize sound hardware if available */ public SourceDataLine initSoundHardware() { try { AudioFormat format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, sampleRate, 8, 2, 2, sampleRate, true); DataLine.Info lineInfo = new DataLine.Info(SourceDataLine.class, format); if (!AudioSystem.isLineSupported(lineInfo)) { System.out.println("Error: Can't find audio output system!"); soundEnabled = false; } else { SourceDataLine line = (SourceDataLine) AudioSystem.getLine(lineInfo); int bufferLength = (sampleRate / 1000) * bufferLengthMsec; line.open(format, bufferLength); line.start(); // System.out.println("Initialized audio successfully."); soundEnabled = true; return line; } } catch (Exception e) { System.out.println("Error: Audio system busy!"); soundEnabled = false; } return null; }
Example 86
Project: reaper--rest-in-peace-master File: BasicPlayerApplet.java View source code |
protected void createLine() throws LineUnavailableException { log.info("Create Line"); if (m_line == null) { AudioFormat sourceFormat = m_audioInputStream.getFormat(); log.info("Create Line : Source format : " + sourceFormat.toString()); AudioFormat targetFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, sourceFormat.getSampleRate(), 16, sourceFormat.getChannels(), sourceFormat.getChannels() * 2, sourceFormat.getSampleRate(), false); log.info("Create Line : Target format: " + targetFormat); // Keep a reference on encoded stream to progress notification. m_encodedaudioInputStream = m_audioInputStream; try { // Get total length in bytes of the encoded stream. encodedLength = m_encodedaudioInputStream.available(); } catch (IOException e) { log.error("Cannot get m_encodedaudioInputStream.available()", e); } // Applet UGLY workaround. if ((isOgg == true) || (forceOgg == true)) m_audioInputStream = AppletVorbisSPIWorkaround.getAudioInputStream(targetFormat, m_audioInputStream); else m_audioInputStream = AppletMpegSPIWorkaround.getAudioInputStream(targetFormat, m_audioInputStream); AudioFormat audioFormat = m_audioInputStream.getFormat(); DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat, AudioSystem.NOT_SPECIFIED); m_line = (SourceDataLine) AudioSystem.getLine(info); log.debug("Line AudioFormat: " + m_line.getFormat().toString()); /*-- Display supported controls --*/ Control[] c = m_line.getControls(); for (int p = 0; p < c.length; p++) { log.debug("Controls : " + c[p].toString()); } /*-- Is Gain Control supported ? --*/ if (m_line.isControlSupported(FloatControl.Type.MASTER_GAIN)) { m_gainControl = (FloatControl) m_line.getControl(FloatControl.Type.MASTER_GAIN); log.info("Master Gain Control : [" + m_gainControl.getMinimum() + "," + m_gainControl.getMaximum() + "] " + m_gainControl.getPrecision()); } /*-- Is Pan control supported ? --*/ if (m_line.isControlSupported(FloatControl.Type.PAN)) { m_panControl = (FloatControl) m_line.getControl(FloatControl.Type.PAN); log.info("Pan Control : [" + m_panControl.getMinimum() + "," + m_panControl.getMaximum() + "] " + m_panControl.getPrecision()); } } }
Example 87
Project: settlers-remake-master File: SwingSoundPlayer.java View source code |
@Override public void run() { AudioFormat format = new AudioFormat(22050, 16, 2, true, false); Line.Info info = new Line.Info(SourceDataLine.class); try { SourceDataLine dataLine = (SourceDataLine) AudioSystem.getMixer(null).getLine(info); dataLine.open(format, BUFFER_SIZE); while (true) { try { // start sound playing dataLine.start(); Sound<Integer> sound = queue.take(); byte[] buffer; if (dataLine.isControlSupported(FloatControl.Type.VOLUME) && dataLine.isControlSupported(FloatControl.Type.BALANCE)) { buffer = transformData(soundDataRetriever.getSoundData(sound.getData())); FloatControl volumeControl = (FloatControl) dataLine.getControl(FloatControl.Type.VOLUME); volumeControl.setValue(sound.getVolume() * volumeControl.getMaximum()); ((FloatControl) dataLine.getControl(FloatControl.Type.BALANCE)).setValue(sound.getBalance()); } else { buffer = transformData(soundDataRetriever.getSoundData(sound.getData()), sound.getLvolume(), sound.getRvolume()); } dataLine.write(buffer, 0, buffer.length); // stop playing dataLine.drain(); dataLine.stop(); } catch (IOException e) { e.printStackTrace(); } } } catch (InterruptedException e) { } catch (LineUnavailableException e) { e.printStackTrace(); } }
Example 88
Project: SFXR-Plus-Plus-master File: SFXRSound.java View source code |
public void run() {
try {
final AudioFormat audioFormat = new AudioFormat(soundThread.sampleRate, 8, 1, true, true);
SourceDataLine line = AudioSystem.getSourceDataLine(audioFormat);
line = AudioSystem.getSourceDataLine(audioFormat);
line.open(audioFormat);
line.start();
// play the byteArray
line.write(soundThread.getPcm(), 0, // (byte[] b,
soundThread.getPcm().length);
// int off,
// int len)
line.drain();
line.flush();
line.close();
} catch (LineUnavailableException e) {
System.err.println("Audio Error:\n\t" + e.getMessage() + "\nExiting.");
}
}
Example 89
Project: SmartHome-master File: AudioPlayer.java View source code |
/** * This method plays the contained AudioSource */ @Override public void run() { SourceDataLine line; AudioFormat audioFormat = convertAudioFormat(this.audioStream.getFormat()); if (audioFormat == null) { logger.warn("Audio format is unsupported or does not have enough details in order to be played"); return; } DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); try { line = (SourceDataLine) AudioSystem.getLine(info); line.open(audioFormat); } catch (Exception e) { logger.warn("No line found: {}", e.getMessage()); logger.info("Available lines are:"); Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo(); Mixer mixer = null; for (int cnt = 0; cnt < mixerInfo.length; cnt++) { mixer = AudioSystem.getMixer(mixerInfo[cnt]); Line.Info[] lineInfos = mixer.getSourceLineInfo(); for (Info lineInfo : lineInfos) { logger.info(lineInfo.toString()); } } return; } line.start(); int nRead = 0; // needs to be a multiple of 4 and 6, to support both 16 and 24 bit stereo byte[] abData = new byte[65532]; try { while (-1 != nRead) { nRead = audioStream.read(abData, 0, abData.length); if (nRead >= 0) { line.write(abData, 0, nRead); } } } catch (IOException e) { logger.error("Error while playing audio: {}", e.getMessage()); return; } finally { line.drain(); line.close(); try { audioStream.close(); } catch (IOException e) { } } }
Example 90
Project: speechalyzer-master File: PlayWave.java View source code |
public void run() { File soundFile = new File(filename); if (!soundFile.exists()) { System.err.println("Wave file not found: " + filename); return; } AudioInputStream audioInputStream = null; try { audioInputStream = AudioSystem.getAudioInputStream(soundFile); } catch (UnsupportedAudioFileException e1) { e1.printStackTrace(); return; } catch (IOException e1) { e1.printStackTrace(); return; } AudioFormat format = null; if (audioFormat.compareTo(AUDIOFORMAT_WAV) == 0) { format = audioInputStream.getFormat(); } else if (audioFormat.compareTo(AUDIOFORMAT_PCM_22050) == 0) { format = AudioUtil.FORMAT_PCM_22KHZ; } else { System.err.println("undefined autio format: " + audioFormat); return; } SourceDataLine auline = null; DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); try { auline = (SourceDataLine) AudioSystem.getLine(info); auline.open(format); } catch (LineUnavailableException e) { e.printStackTrace(); return; } catch (Exception e) { e.printStackTrace(); return; } if (auline.isControlSupported(FloatControl.Type.PAN)) { FloatControl pan = (FloatControl) auline.getControl(FloatControl.Type.PAN); if (curPosition == Position.RIGHT) pan.setValue(1.0f); else if (curPosition == Position.LEFT) pan.setValue(-1.0f); } auline.start(); int nBytesRead = 0; byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; _playing = true; try { while (nBytesRead != -1) { nBytesRead = audioInputStream.read(abData, 0, abData.length); if (nBytesRead >= 0) auline.write(abData, 0, nBytesRead); if (!_playing) break; } _playing = false; audioInputStream.close(); } catch (IOException e) { e.printStackTrace(); return; } finally { auline.drain(); auline.close(); auline = null; audioInputStream = null; soundFile = null; } }
Example 91
Project: swing-minizoo-master File: JavaSoundAudioDevice.java View source code |
// createSource fix. protected void createSource() throws JavaLayerException { Throwable t = null; try { Line line = AudioSystem.getLine(getSourceLineInfo()); if (line instanceof SourceDataLine) { source = (SourceDataLine) line; //source.open(fmt, millisecondsToBytes(fmt, 2000)); source.open(fmt); /* if (source.isControlSupported(FloatControl.Type.MASTER_GAIN)) { FloatControl c = (FloatControl)source.getControl(FloatControl.Type.MASTER_GAIN); c.setValue(c.getMaximum()); }*/ source.start(); } } catch (RuntimeException ex) { t = ex; } catch (LinkageError ex) { t = ex; } catch (LineUnavailableException ex) { t = ex; } if (source == null) throw new JavaLayerException("cannot obtain source audio line", t); }
Example 92
Project: TaiWebDeployUtils-master File: MAudioSample.java View source code |
public void run() {
try {
line.open(format, bufferSize() * format.getFrameSize() * 4);
} catch (LineUnavailableException e) {
Minim.error("Error opening SourceDataLine: " + e.getMessage());
}
line.start();
while (!finished) {
// clear the buffer
buffer.makeSilence();
// build our signal from all the marks
for (int i = 0; i < marks.length; i++) {
int begin = marks[i];
if (begin == -1)
continue;
//Minim.debug("Sample trigger in process at marks[" + i + "] = " + marks[i]);
int j, k;
for (j = begin, k = 0; j < samples.getSampleCount() && k < buffer.getSampleCount(); j++, k++) {
if (type() == Minim.MONO) {
buffer.getChannel(0)[k] += samples.getChannel(0)[j];
} else {
buffer.getChannel(0)[k] += samples.getChannel(0)[j];
buffer.getChannel(1)[k] += samples.getChannel(1)[j];
}
}
if (j < samples.getSampleCount()) {
marks[i] = j;
} else {
//Minim.debug("Sample trigger ended.");
marks[i] = -1;
}
}
// apply effects and broadcast samples to our listeners
if (type() == Minim.MONO) {
if (effects.hasEnabled()) {
effects.process(buffer.getChannel(0));
}
splitter.samples(buffer.getChannel(0));
} else {
if (effects.hasEnabled()) {
effects.process(buffer.getChannel(0), buffer.getChannel(1));
}
splitter.samples(buffer.getChannel(0), buffer.getChannel(1));
}
// write to the line
int wrote = buffer.convertToByteArray(bytes, 0, format);
line.write(bytes, 0, wrote);
}
line.drain();
line.stop();
line.close();
line = null;
}
Example 93
Project: unifrog-master File: JavaSoundAudioDevice.java View source code |
// createSource fix. protected void createSource() throws JavaLayerException { Throwable t = null; try { Line line = AudioSystem.getLine(getSourceLineInfo()); if (line instanceof SourceDataLine) { source = (SourceDataLine) line; //source.open(fmt, millisecondsToBytes(fmt, 2000)); source.open(fmt); /* if (source.isControlSupported(FloatControl.Type.MASTER_GAIN)) { FloatControl c = (FloatControl)source.getControl(FloatControl.Type.MASTER_GAIN); c.setValue(c.getMaximum()); }*/ source.start(); } } catch (RuntimeException ex) { t = ex; } catch (LinkageError ex) { t = ex; } catch (LineUnavailableException ex) { t = ex; } if (source == null) throw new JavaLayerException("cannot obtain source audio line", t); }
Example 94
Project: Amber-IDE-master File: AudioIO.java View source code |
public static Mixer findMixer(AudioFormat format) {
DataLine.Info lineInfo = new DataLine.Info(SourceDataLine.class, format);
Mixer.Info[] mixerInfos = AudioSystem.getMixerInfo();
//check each available mixer to see if it is acceptable
for (int i = 0; i < mixerInfos.length; i++) {
Mixer mixer = AudioSystem.getMixer(mixerInfos[i]);
//first check if it supports our line
if (!mixer.isLineSupported(lineInfo)) {
//nope
continue;
}
//now check if we've used up our lines
int maxLines = mixer.getMaxLines(lineInfo);
//if it's not specified, it's supposedly unlimited
if (maxLines == AudioSystem.NOT_SPECIFIED) {
return mixer;
}
//otherwise we should count them
int linesOpen = 0;
Line[] sourceLines = mixer.getSourceLines();
for (int s = 0; s < sourceLines.length; s++) {
//check if it matches our line
if (sourceLines[s].getLineInfo().matches(lineInfo)) {
//one line used up
linesOpen++;
}
}
//now we can see if any are available
if (maxLines > linesOpen) {
return mixer;
}
}
//couldn't find one
return null;
}
Example 95
Project: anemone-master File: Audio.java View source code |
public void run() { SourceDataLine line = null; try { try { line = (SourceDataLine) AudioSystem.getLine(new DataLine.Info(SourceDataLine.class, fmt)); line.open(fmt, bufsize); line.start(); } catch (Exception e) { e.printStackTrace(); return; } byte[] buf = new byte[1024]; while (true) { if (Thread.interrupted()) throw (new InterruptedException()); synchronized (queuemon) { Collection<Runnable> queue = Audio.queue; Audio.queue = new LinkedList<Runnable>(); for (Runnable r : queue) r.run(); } synchronized (ncl) { for (CS cs : ncl) clips.add(cs); ncl.clear(); } fillbuf(buf, 0, 1024); for (int off = 0; off < buf.length; off += line.write(buf, off, buf.length - off)) ; } } catch (InterruptedException e) { } finally { synchronized (Audio.class) { player = null; } if (line != null) line.close(); } }
Example 96
Project: common-chicken-runtime-engine-master File: Beeper.java View source code |
/**
* Start playing the specified beep type.
*
* @param bt the beep type to play.
* @see BeepType
*/
public static void beep(BeepType bt) {
System.out.println("Beeping: " + bt);
try {
AudioFormat format = new AudioFormat(bt.rate(), 8, 1, false, true);
SourceDataLine line = AudioSystem.getSourceDataLine(format);
try {
line.open(format);
line.start();
long time = 0;
while (true) {
byte[] more = new byte[1024];
int i = 0;
try {
for (; i < more.length; i++) {
more[i] = bt.generateOne(time++);
}
} catch (CompletedException ex) {
line.write(more, 0, i);
break;
}
line.write(more, 0, i);
}
line.drain();
} finally {
line.close();
}
} catch (LineUnavailableException ex) {
ex.printStackTrace();
}
}
Example 97
Project: epic-inventor-master File: JavaSoundAudioDevice.java View source code |
// createSource fix. protected void createSource2(boolean start) throws JavaLayerException { Throwable t = null; try { Line line = AudioSystem.getLine(getSourceLineInfo()); if (line instanceof SourceDataLine) { source = (SourceDataLine) line; //source.open(fmt, millisecondsToBytes(fmt, 2000)); source.open(fmt); /* if (source.isControlSupported(FloatControl.Type.MASTER_GAIN)) { FloatControl c = (FloatControl)source.getControl(FloatControl.Type.MASTER_GAIN); c.setValue(c.getMaximum()); }*/ if (start) { source.start(); } } } catch (RuntimeException ex) { t = ex; } catch (LinkageError ex) { t = ex; } catch (LineUnavailableException ex) { t = ex; } if (source == null) { throw new JavaLayerException("cannot obtain source audio line", t); } }
Example 98
Project: freecol-android-master File: SoundPlayer.java View source code |
private void setVolume(SourceDataLine line, int vol) {
try {
FloatControl control = (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);
if (control != null) {
// The gain (dB) and volume (percent) are log related.
// 50% volume = -6dB
// 10% volume = -20dB
// 1% volume = -40dB
// Use max/min for 100,0%.
float gain = (vol <= 0) ? control.getMinimum() : (vol >= 100) ? control.getMaximum() : 20.0f * (float) Math.log10(0.01f * vol);
control.setValue(gain);
logger.finest("Using volume " + vol + "%, gain = " + gain);
} else {
logger.warning("No master gain control," + " unable to change the volume.");
}
} catch (Exception e) {
logger.log(Level.WARNING, "Could not set volume", e);
}
}
Example 99
Project: geogebra-master File: Decoder.java View source code |
public void play(String name, InputStream in) throws IOException { stop = false; int frameCount = Integer.MAX_VALUE; // int testing; // frameCount = 100; Decoder decoder = new Decoder(); Bitstream stream = new Bitstream(in); SourceDataLine line1 = null; int error = 0; for (int frame = 0; !stop && frame < frameCount; frame++) { if (pause) { line1.stop(); while (pause && !stop) { try { Thread.sleep(100); } catch (InterruptedException e) { } } line1.flush(); line1.start(); } try { Header header = stream.readFrame(); if (header == null) { break; } if (decoder.channels == 0) { int channels1 = (header.mode() == Header.MODE_SINGLE_CHANNEL) ? 1 : 2; float sampleRate = header.frequency(); int sampleSize = 16; AudioFormat format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, sampleRate, sampleSize, channels1, channels1 * (sampleSize / 8), sampleRate, true); // big endian SourceDataLine.Info info = new DataLine.Info(SourceDataLine.class, format); line1 = (SourceDataLine) AudioSystem.getLine(info); if (BENCHMARK) { decoder.initOutputBuffer(null, channels1); } else { decoder.initOutputBuffer(line1, channels1); } // TODO sometimes the line can not be opened (maybe not // enough system resources?): display error message // System.out.println(line.getFormat().toString()); line1.open(format); line1.start(); } while (line1.available() < 100) { Thread.yield(); Thread.sleep(200); } decoder.decodeFrame(header, stream); } catch (Exception e) { if (error++ > 1000) { break; } Log.debug("Error at: " + name + " Frame: " + frame + " Error: " + e.toString()); } finally { stream.closeFrame(); } } if (error > 0) { Log.debug("errors: " + error); } in.close(); if (line1 != null) { line1.stop(); line1.close(); line1 = null; } }
Example 100
Project: Grimja-master File: VideoViewer.java View source code |
public void run() { final int framePeriod = (int) (1000f / data.fps); int last_frame = -1; boolean valid = true; final WritableRaster raster = surface.getRaster(); try { // Todo: sync is WAY off if (data.audio.stream != null) { AudioTrack audio = data.audio; AudioFormat af = new AudioFormat(audio.sampleRate, audio.bits, audio.channels, true, true); SourceDataLine sdl = (SourceDataLine) AudioSystem.getLine(new DataLine.Info(SourceDataLine.class, af)); sdl.open(); sdl.start(); byte[] buf = new byte[sdl.getBufferSize()]; audio.stream.seek(0); int pos = 0; final int bytesPerSample = (audio.bits / 8) * audio.channels; final int bytesPerSec = bytesPerSample * audio.sampleRate; final int bytesPerMs = bytesPerSec / 1000; // VIMA is 50 frames ahead according to residual... final int frameOff = 500; while (valid) { int ms = pos / bytesPerMs; ms -= frameOff; if (ms < 0) ms = 0; int frame = ms / framePeriod; if (frame != last_frame && frame != last_frame + 1) // Interpolate, we can't drop frames! frame = last_frame + 1; last_frame = frame; data.stream.setFrame(frame); valid = playing && data.stream.readFrame(raster, data.width, data.height); if (!valid) break; viewer.repaint(); int read = audio.stream.read(buf, 0, Math.min(buf.length, sdl.available())); pos += read; if (read == -1) break; sdl.write(buf, 0, read); } if (playing) sdl.drain(); else sdl.flush(); sdl.stop(); sdl.close(); } else { // Otherwise just try and keep the FPS long start = System.currentTimeMillis(); while (valid) { long elapsed = System.currentTimeMillis() - start; int frame = (int) (elapsed / framePeriod); if (frame != last_frame && frame != last_frame + 1) // Interpolate, can't drop... frame = last_frame + 1; last_frame = frame; data.stream.setFrame(frame); valid = playing && data.stream.readFrame(raster, data.width, data.height); viewer.repaint(); } } } catch (Exception e) { MainWindow.getInstance().handleException(e); } stopAction.setEnabled(false); playAction.setEnabled(true); }
Example 101
Project: Haven-and-Hearth-client-modified-by-Ender-master File: Audio.java View source code |
public void run() { SourceDataLine line = null; try { try { line = (SourceDataLine) AudioSystem.getLine(new DataLine.Info(SourceDataLine.class, fmt)); line.open(fmt, bufsize); line.start(); } catch (Exception e) { e.printStackTrace(); return; } byte[] buf = new byte[1024]; while (true) { if (Thread.interrupted()) throw (new InterruptedException()); synchronized (queuemon) { Collection<Runnable> queue = Audio.queue; Audio.queue = new LinkedList<Runnable>(); for (Runnable r : queue) r.run(); } synchronized (ncl) { for (CS cs : ncl) clips.add(cs); ncl.clear(); } fillbuf(buf, 0, 1024); for (int off = 0; off < buf.length; off += line.write(buf, off, buf.length - off)) ; } } catch (InterruptedException e) { } finally { synchronized (Audio.class) { player = null; } if (line != null) line.close(); } }