.


:




:

































 

 

 

 


Java




 

AudioClip.

, getAudioClip(), , , , play(), loop() stop() .

Applet newAudioclp(URL address), , address, , Audioclip. , .

, , WAV, AU SND.

.

package javaaudio1;

 

import java.applet.Applet;

import java.applet.AudioClip;

import java.net.MalformedURLException;

import java.net.URL;

import java.util.logging.Level;

import java.util.logging.Logger;

 

public class AudioApplet1 extends Applet

{

public void init()

{

// AudioClip

// getAudioClip Applet,

// .

AudioClip ac;

Try

{

ac = getAudioClip(new URL("http://localhost/audio/javaaudio.wav"));

ac.play();

}

catch (MalformedURLException ex)

{

Logger.getLogger(AudioApplet1.class.getName()).log(Level.SEVERE, null, ex);

}

}

}

 

Java, SUN J2SDK 1.3, , , AU, WAVE, AIFF, MIDI, , .

, javax.sound.sampled, javax.sound.midi, javax.sound.sampled.spi javax.sound.midi.spi. Java Sound API.

, JVM, : (digital audio) (sample rate) 8 000 48 000 (quantization) 8 16 , MIDI- (sequences) 0 1.

AU, WAVE AIFF. .

Clip. , , .

SourceDataLine. , .

AudioFormat. : AudioFormat(float sampleRate, int sampleSize, int channels, boolean signed, boolean bigEndian) sampleRate ( 44 100 ), sampleSize, ( 16), channels (1 , 2 ), , signed == true, , bigEndian. , . .

getAudioFiieFormato AudioSystem, getFormato AudioFiieFormat.

AudioFormat, DataLine. inf (line) clip SourceDataLine. , . getLine () AudioSystem. Audioinputstream. AudioFormat getFormat ().

n loop(n) loop (Clip.LOOP_CONTINUOUSLY). n m setLoopPoints(n, m).

, Clip.

 

package javaaudio2;

import java.awt.Button;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.File;

import javax.sound.sampled.AudioFileFormat;

import javax.sound.sampled.AudioFormat;

import javax.sound.sampled.AudioInputStream;

import javax.sound.sampled.AudioSystem;

import javax.sound.sampled.Clip;

import javax.sound.sampled.DataLine;

import javax.swing.JFrame;

import javax.swing.JPanel;

 

public class Main

{

public static void main(String[] args)

{

final PlayAudio pa = new PlayAudio("D:\\javaaudio.wav");

// .

JFrame f = new JFrame("Audio");

JPanel panel = new JPanel();

panel.setLayout(new FlowLayout());

Button start = new Button("Play");

start.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent arg0)

{

pa.play();

}

});

Button stop = new Button("Stop");

stop.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent arg0)

{

pa.stop();

}

});

panel.add(start);

panel.add(stop);

f.add(panel);

f.setSize(300,100);

f.setLocation(200,200);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

}

}

 

class PlayAudio

{

Clip line;

public PlayAudio(String file)

{

try

{

// , .

File f = new File(file);

// .

AudioFileFormat aff = AudioSystem.getAudioFileFormat(f);

// .

AudioFormat af = aff.getFormat();

// ,

// .

DataLine.Info info = new DataLine.Info(Clip.class, af);

// , .

if (!AudioSystem.isLineSupported(info))

{

System.err.println("Line is not supported.");

System.exit(0);

}

// .

line = (Clip) AudioSystem.getLine(info);

 

// .

AudioInputStream ais = AudioSystem.getAudioInputStream(f);

 

// .

line.open(ais);

 

}

catch (Exception e)

{

System.err.println(e);

}

}

public void play()

{

line.start();

}

public void stop()

{

line.stop();

}

}

, SourceDataLine, .

package javaaudio3;

import java.io.File;

import javax.sound.sampled.AudioFormat;

import javax.sound.sampled.AudioInputStream;

import javax.sound.sampled.AudioSystem;

import javax.sound.sampled.DataLine;

import javax.sound.sampled.SourceDataLine;

public class Main

{

public static void main(String[] args)

{

PlayAudioLine pal = new PlayAudioLine("D:\\javaaudio.wav");

pal.play();

}

}

 

class PlayAudioLine

{

String file;

 

PlayAudioLine(String file)

{

this.file = file;

}

 

public void play()

{

AudioInputStream ais = null;

SourceDataLine line = null;

byte[] b = new byte[2048]; //

try

{

File f = new File(file);

// f

ais = AudioSystem.getAudioInputStream(f);

//

AudioFormat af = ais.getFormat();

// info

DataLine.Info info = new DataLine.Info(SourceDataLine.class, af);

// ,

if (!AudioSystem.isLineSupported(info))

{

System.err.println("Line is not supported.");

System.exit(0);

}

//

line = (SourceDataLine) AudioSystem.getLine(info);

//

line.open(af);

line.start();

//

int num = 0;

//

while ((num = ais.read(b))!= -1)

{

line.write(b, 0, num);

}

//

line.drain();

//

ais.close();

}

catch (Exception e)

{

System.err.println(e);

}

line.close();

}

}

 

MIDI-

 

MIDI- (sequence) (sequencer) , MlDI-, . (tracks), MIDI- (events). (channel). , (synthesizer).

MIDI- , , . start (). stop(), ""

setMicrosecondPositionf(long mcs) setTickPosition(long tick).

MIDI-.

package javaaudiomidi;

import javax.sound.midi.*;

import java.io.*;

 

public class Main

{

public static void main(String[] args)

{

JavaAudioMidi jam = new JavaAudioMidi("D:\\javaaudio.mid");

jam.play();

}

}

 

class JavaAudioMidi

{

String file;

public JavaAudioMidi(String file)

{

this.file = file;

}

 

public void play()

{

try

{

File f = new File(file);

//

Sequencer sequencer = MidiSystem.getSequencer();

// ,

if (sequencer == null)

{

System.err.println("Sequencer is not supported.");

System.exit(0);

}

//

sequencer.open();

// MIDI-

Sequence seq = MidiSystem.getSequence(f);

//

sequencer.setSequence(seq);

//

sequencer.start();

}

catch (Exception e)

{

System.err.println(e);

}

}

}

 

 

1. .

2. drawImage Image?

3. FilteredlmageSource?

4. , .

5. Java Sound API?





:


: 2017-02-25; !; : 1610 |


:

:

, .
==> ...

1535 - | 1439 -


© 2015-2024 lektsii.org - -

: 0.048 .