アフィリエイト広告を利用しています

広告

posted by fanblog
プロフィール

IT研究員
日々ITの研究をしています。
リンク集
<< 2021年11月 >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
カテゴリアーカイブ
月別アーカイブ
最新記事

広告

posted by fanblog
2007年10月07日
Javaでユーザーから音声ファイルを参照して入力させる

Javaでユーザーから音声ファイルを参照して入力させるプログラミングを教えてください。」とのことですが、こんなもんでいいかな?ユーザーが音声ファイルを参照して入力して、それを再生します。Javaは多くの音声フォーマットに対応しているようだけど、とりあえずwavファイルのみ対応。


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.net.URL;

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.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
import javax.swing.filechooser.FileFilter;

public class PlaySound extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public PlaySound() {
		JButton jButton = new JButton("参照...");

		jButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				jButtonActionPerformed(evt);
			}
		});

		getContentPane().add(jButton);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		pack();
		setResizable(false);
		setVisible(true);
	}

	private void jButtonActionPerformed(ActionEvent evt) {
		JFileChooser fc = new JFileChooser();
		fc.addChoosableFileFilter(new FileFilter() {
			public boolean accept(File file) {
				if (file.isDirectory())
					return true;
				return file.getName().toLowerCase().endsWith(".wav");
			}

			public String getDescription() {
				return "サウンドファイル(*.wav)";
			}
		});
		fc.showOpenDialog(this);
		if (fc.getSelectedFile() == null) {
			return;
		}
		File wav = fc.getSelectedFile().getAbsoluteFile();

		try {
			// 音声再生
			AudioInputStream sound = AudioSystem.getAudioInputStream(wav);
			AudioFormat format = sound.getFormat();
			DataLine.Info di = new DataLine.Info(Clip.class, format);
			Clip clip = (Clip) AudioSystem.getLine(di);
			clip.open(sound);
			clip.start();
		} catch (Exception ignore) {
			ignore.printStackTrace();
		}
	}

	public static void main(String[] args) {
		new PlaySound();
	}

}

ちょっと勉強すればすぐに自分でも書けるようになりますよ。

Posted by IT研究員 at 11:26 | この記事のURL
この記事のURL

×

この広告は30日以上新しい記事の更新がないブログに表示されております。