FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ubuntu 10.10 Eclipse Java Sound API Tritonus

waveファイルをJavaで読み込もうと、ライブラリを探してみました。

すると、Sun(今はOracleかな?)でJava Sound APIというものが紹介されていました。
早速、ubuntuソフトウェアセンターで検索してみると、HIT。
インストールしてみたのですが、使い方が分かりませんでした。

ちなみに、implementation of the Java Sound APIの正体はTritonusというAPIです。
$cat /var/lib/dpkg/info/libtritonus-java.list
とすると、どこにインストールされたかが分かります。私の場合、/usr/share/javaの中にインストールされていました。

Ubuntuソフトウェアセンターの説明を読む限りだと、TritonusはJava Sound APIのLinux実装のようです。
Java Sound APIってWindowsでしか使えなかったのかな・・・?

さて、Eclipse3.6でこのAPIを追加する方法をメモします。
1.Javaプロジェクトを右クリックして、プロパティを開く。
2.Javaビルド・パス→ライブラリ→外部jarの追加
3.Tritonusのjarファイルを全部追加する。

これでTritonusが使えるようになります。

以下サンプルコード:

import java.io.File;
import java.io.IOException;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.UnsupportedAudioFileException;

import org.tritonus.sampled.file.*;

public class Main {

/**
* @param args
*/
public static void main(String[] args) {
// 引数でファイル名を取得
String filename = args[0];

// ファイルハンドルの生成
File file = new File(filename);
// Waveファイルの読み込みクラスのインスタンスを生成
WaveAudioFileReader reader = new WaveAudioFileReader();
// Waveデータを入れるバイト配列。ここの配列のサイズずつ読み込まれる。
byte[] data = new byte[100];

try {
// Waveファイルからストリームを取得
AudioInputStream streame = reader.getAudioInputStream(file);
// フォーマットの形式を取得
//System.out.println(streame.getFormat());
// フレームのサイズを取得
//System.out.println(streame.getFrameLength());

// 取得したストリームデータをすべて表示
while(streame.read(data) != -1){
// 今回16bitのWaveファイルを読み込んだので、2バイト毎に表示している。
for(int i=0; i < data.length; i+=2){
// 下位バイト、上位バイトの順に読み込まれるらしい。
System.out.println( (data[i+1]<<8) + data[i] );
}
}
} catch (UnsupportedAudioFileException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} catch (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}

}

コメントの投稿

管理者にだけ表示を許可する

プロフィール

sin

ニックネーム:sin

趣味でプログラムの作成などをしています。

Google+1
最新記事
カテゴリ
検索フォーム
リンク
最新コメント
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。