jojo3.audioパッケージ ver.β3
SL-A300のPersonal JavaでWave再生
[戻る]
SL-A300のJavaなみなさん! プログラミングしていますか?
ようやくPDAで正式にJavaを動かす環境ができ、何気にソフトもそろってきましたが、 今まで、どうしても出来なかったことがあります。

それは、wav再生

jeodeのランタイムにも、sun.audioパッケージがあるのですが、 これを使っても、どういう訳か、雑音しか出ない。

なんでやねん!?

そう思った方も多いはずです。

もともと対応してねーんじゃないの!?

そう思った方も多いはずです。

サンデーゲームJavaグラマな私は思いました。
もしも、これで音が出せたら、もっと、もっと、楽しいソフトがそろうのに!

そこで、/dev/dspのデバイスについて調査し、この度、めでたくその謎が解明できたため、
wav再生のパッケージをリリースすることができました。(^o^)/

あまり、対応しているフォーマットは多くないし、機能も充実していませんが、
SL-A300専用 wav再生パッケージ jojo3.audio公開です。
ご感想、ご要望などは、掲示板にお願いいたします。

package jojo3.audio ver.β3

チュートリアルも用意しました。

jojo3audioを利用したサンプルソースコード)
#後ろの.binを除いてダウンロードして下さい。
#ソースは汚い、コメント無いです。こんな風にプログラムするのか?とか、雰囲気を感じてください。(^^;

公開にあたり、/dev/dspの解析に協力してくれました、Roz氏山本かず氏に感謝いたします。


jojo3.audioパッケージの位置づけ
当パッケージは、sun.audioパッケージが正式に対応されるまでのつなぎとして開発しています。
そのため、将来的にsun.audioパッケージが修正された暁には、
import jojo3.audio.*;

import sun.audio.*;
に、変更すれば、移行が完了。
というコンセプトのもと、作成しております。(志だけは…)

sun.audioパッケージが正式対応されたら、さっさと移行しましょう
#SL-C700は対応してるらしいですね。SL-A300もとっとと対応して欲しい(;_;)


対応するクラスとメソッド
必要最小限に機能を絞っています。故に、使い方も限定されます。

…が、あまり困らない筈です。(^^; 根拠レス…

というわけで、作成したクラスと、互換性のあるメソッドは、以下の通りです。
クラス名 sun.audio 互換メソッド 備考
AudioStream AudioStream(InputStream) throws IOException
AudioData getData() throws IOException
現在、動作を確認しているデータは、
・au形式 U-Law 8KHz 8bit monoral(ちょっと変?)
・RIFF/WAVE形式 PCM 44KHz 16bit Stereo
・RIFF/WAVE形式 PCM 44KHz 16bit monoral
・RIFF/WAVE形式 PCM 44KHz 8bit Stereo
・RIFF/WAVE形式 PCM 44KHz 8bit monoral
・RIFF/WAVE形式 PCM 22KHz 16bit Stereo (SL-A300の内蔵wav)
・RIFF/WAVE形式 PCM 22KHz 16bit monoral
・RIFF/WAVE形式 PCM 22KHz 8bit Stereo
・RIFF/WAVE形式 PCM 22KHz 8bit monoral
・RIFF/WAVE形式 PCM 11KHz 16bit Stereo
・RIFF/WAVE形式 PCM 11KHz 16bit monoral
・RIFF/WAVE形式 PCM 11KHz 8bit Stereo
・RIFF/WAVE形式 PCM 11KHz 8bit monoral
AudioData AudioData(byte[] buf) bufの内容は、PCM 44KHz 16bit Stereo形式のデータ前提。
RIFF/WAVEヘッダは不要。(というかつけないで! (^^; )
AudioDataStream AudioDataStream(AudioData ad)
int read()
int read(byte[] buf, int off, int size)
特になし。
ContinuousAudioDataStream ContinuousAudioDataStream(AudioData ad)
int read()
int read(byte[] buf, int off, int size)
特になし。
AudioPlayer AudioPlayer player
void start(InputStream is)
void stop(InputStream is)
/dev/dspデバイスをオープンするため、Appletでは使用不可。
AppletをFrame等に貼り付けてApplicationとして使用する場合はOK


著作権など
当パッケージはフリーとし、配布・利用は自由としますが、著作権はjojo3にあります。
当パッケージ単体で売るとかは止めてください。
また、当パッケージを使ったことで生じた如何なる障害も補償しかねますので、自己責任のもとご利用下さい。

履歴:
・2002/12/15 バージョンβ3公開。
 メモリ消費量の改善。

・2002/12/10 バージョンβ2公開。
 対応形式を大幅増加。

・2002/12/06 バージョンβ公開。