Java Appletの解説

<9.音の作り方>

Javaで音をどの様にして作ればいいか,色々調べたのですが,試行錯誤で何とか,Javaの音のファイルを作りました。もっといい方法があるかもしれません。
Javaで使える音のファイルは,「***.au」というSunオーディオ形式です。Windows付属の「サウンド・レコダー」は,Windowsで扱う「***.wav」形式のファイルができます。
これを何とかauファイルに変換しようとしたのですが,よくわからずできませんでした。
しかし,Goldwaveというシェアウエアーのソフトを使うことで何とかauファイルを作る事ができました。
窓の杜ここで探して下さい。

1.音の録音

Goldwaveのソフトを使って録音することができます。しかし,詳しい使い方は分かりません。
「File」をクリックして,「New」を選んで下さい。そうすると設定項目が出てきます。これはよく分かりません。
1.Bits,2.Channels,3.Sampling rate,4.Timeの4項目です。
時間だけ設定して,録音しました。1秒5秒10秒30秒...と設定時間があります。だいたい5秒の設定で40KMの容量になります。
そして,小ウインドウの録音ボタンを押すと決められた秒だけ録音できます。

Windows付属の「サウンド・レコダー」が使い慣れている人は,これで録音してもいいです。
これを使うと,Windowsで扱う「***.wav」形式のファイルができます。
HTML文では,このファイルを扱って音を出すことが可能です。しかし,Javaでは,この形式のファイルでは,音が出ませんので,変換が必要です。

2.ファイルの保存,変換

Goldwaveで録音した場合は,そのまま保存するときにauファイルを選べば「***.au」として保存できます。

あるホームページには,「サウンド・レコダー」でwavファイルをauファイルに変換できると書いてあるのですが, いくらやってもJavaで使えるauファイルにはなりません。
サウンドツールにWhamというフリーソフトがあります。ある本には,これで変換できると書いてあるのですが,「サウンド・レコダー」と 同様にJavaで使えるauファイルは,作れませんでした。私が分からないだけかもしれません。

「サウンド・レコダー」で録音したwavファイルをauファイルに変換するには,Goldwaveで読み込んで,別名で保存します。その時,auファイル形式を選べばwavファイルがauファイルに変換します。

3.音の例

1.<HTML文>
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
<HTML>
<HEAD>
<TITLE>Test-Sound</TITLE>
</HEAD>
<BODY>
<CENTER>
<HR>
<APPLET CODE="sound2.class" WIDTH=300 HEIGHT=30>
<PARAM NAME="SOUND" VALUE="test1.au">
</APPLET>
<HR>
</CENTER>
</BODY>
</HTML>
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
2.<解説>
<PARAM NAME="SOUND" VALUE="test1.au">
HTML文から音のファイルを選べるようにしました。VALUEの所に,出したい音のファイル名(auファイル)を入れればいです。

3.<Javaファイル>
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.applet.AudioClip;

public class sound2 extends Applet{
AudioClip sd;
String msg;

public void init(){
Button bt1;
msg=getParameter("SOUND");
add(bt1=new Button("sound"));
bt1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
sd.play();}
});
sd=getAudioClip(getDocumentBase(),msg);
}}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
例1.ここをクリックして下さい。なお,解説はJDK1.1.8のプログラムですが NS(Ver4.05)では動きませんので例はJDKVer1.02で作った物です。
4.<解説>
1)import java.awt.event.*;
ボタンを押すとかイベント処理のパッケージ。
2)import java.applet.AudioClip;
音を扱うオーディオ・クリックのクラスです。
3)AudioClip sd;
sdのオーディオクリップの宣言
4)public void init(){
1.Button bt1;
bt1のボタン宣言。
2.msg=getParameter("SOUND");
HTMLより読み込むオーディオファイルの名前の情報をmsgに得ます。例の場合は,test1.auです。
3.add(bt1=new Button("sound"));
ボタン表示。ラベル(ボタンに表示される文字)は「sound」です
4.bt1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
bt1(sound)のボタンが押された時,以下の事を実行します。
5.{sd.play();}
sdのオーディオを1回だけ実行する。
4)sd=getAudioClip(getDocumentBase(),msg);
getDocumentBase():HTML文のあるフォルダーの場所を意味します。それと同じ所にある”msg”(test1.au)という音声ファイル をsdに取得する。

なお,JDKVer1.1.8では,sound2.classとsound2$1.classの2つのclassができます。



トップページ

趣味のトップページ

娯楽室の各部屋
Aplletの解説へ戻る

Scriptの解説 Scriptのゲーム Appletのゲーム Linuxの部屋 物置部屋