- ベストアンサー
JAVAアプレットのサウンド機能について
- JAVAアプレットの機能であるAudioClipインターフェースを使用することで、音楽の再生や停止ができます。
- しかし、4MB以上の音声ファイル(wavファイル)を何度か再生・停止すると、プログラムが暴走し、変な音が鳴り続けることがあります。
- この問題はJAVAそのものの問題か、パソコンのCPUに関係がある可能性があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 5MBのwavファイルで実験してみましたが、再現できませんねぇ。 アプレットビューアーでもブラウザでも、問題なく動きました。 実験したサンプルを投稿しますので、実験してみてください。 それで、問題が直らないようなら、プログラム上の問題ではなく、環境の問題と言うことになります。 また、音源ファイルを他のものと変えてみた場合はどうなりますか? やはり、4MB以上のものなら、同じ症状になりますか? waveファイルは、↓の5.2MBのバイオリンの音源を使わせてもらいました。 http://www.ne.jp/asahi/music/myuu/wave/wave.htm (コンパイルするときは全角スペースを半角スペースに変換してからにしてください) public class MainApplet extends Applet { Button start; Button stop; AudioClip audioClip; public void init() { audioClip = getAudioClip(getDocumentBase(), "strings.wav"); start = new Button("start"); start.addActionListener(new StartClicked()); add(start); stop = new Button("stop"); stop.addActionListener(new StopClicked()); add(stop); } private class StartClicked implements ActionListener { public void actionPerformed(ActionEvent e) { audioClip.play(); } } private class StopClicked implements ActionListener { public void actionPerformed(ActionEvent e) { audioClip.stop(); } } }
お礼
先ほどの補足のプログラムのエラーメッセージのこと忘れてください。僕が勝手に手を加えてエラーを出していました。今はあなた様のプログラムはきちんと実行できましたが、やはり鳴らしたり、止めたりを繰り返すと暴走しました。どうもファイルやプログラムの問題ではないようですね。それが分かったのでありがとうございました。
補足
ご回答ありがとうございます。 まずリンク先の5MBほどのバイオリンのファイルを僕のプログラムで使用させていただきましたが、 それでも暴走しました。 それからあなた様の提供してくださったプログラムをコンパイルしたのですが、このエラーだけは消すことができませんでした。まだ未熟者で趣味の範囲でしかJAVAには入っていないのでよく分かりません。そのエラーとは、 MainApplet.java:7: MainApplet は abstract として宣言する必要があります。actionPerformed(java.awt.ev nt.ActionEvent) を MainApplet で定義しません。 class MainApplet extends Applet implements ActionListener{ ^ エラー 1 個 プログラムの先頭にはパッケージの使用を定義しているので、本来の7行目ではありません。