Sequencerクラスのstart()メソッドを用いて、
MIDIを演奏するプログラムを組みました。
アプリケーションではMIDIファイルを演奏できるのですが、
同様のことをブラウザ上(アプレット)で行おうとすると、
エラーメッセージは出ないのですが、音が鳴りません。
アプレットビューアで実行すると音が鳴るので、
ブラウザ側に原因があると思うのですが、解決法がわかりません。

ブラウザ上でMIDIを扱う命令(JAVA2)を実行できるように、
JAVA2に対応させるためのプラグインをブラウザ(IE5,5)に組み込み、
アプレットを起動するhtmlファイルをJava2に対応するように、
Sunのホームページにあるコンバータを使ってコンバートしました。

何か解決策があったら教えてください。お願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

コンソールにはエラーや例外が吐かれていますか?


吐かれているならそれを教えてください。

プラグインを入れたのなら、
ブラウザのJavaコンソールには出力されません。
プラグインのコンソールのほうに例外やエラーや
System.out.println("hogehoge");
の結果がでます。

プラグインのコンソールの出し方---
Windowsなら(他のOSならそれなりの設定するところがあるでしょうから適当に探してみてください)
スタート-設定-コントロールパネルを開いてみてください。
Java Pluginという項目が既に入ってるはずです。
それを開くと「基本」タグに「Javaコンソールの表示」というチェックボックスがあるのでそれにチェックを入れます。

もうひとつの方法
Win98だけ?なのかも知れませんが、Plugin使ってるとタスクバーにDuke(さんかく頭のJavaのマスコット)君の
アイコンが出てきます。そいつからコンソール表示させることもできます。

この回答への補足

質問へのお返事ありがとうございます。
まず始めにコンソールに表示された全文を載せます。

Java(TM) Plug-in: バージョン 1.3.0-C
使用中の JRE のバージョン 1.3.0 Java HotSpot(TM) Client VM
ユーザのホームディレクトリ = C:\WINDOWS
プロキシの設定: プロキシなし
JAR cache enabled.

以上です。多分エラーメッセージらしいものは無いと思います。
説明が不十分な点があったので、現在の動作についてもう少し細かく説明します。
私の作成したプログラムは、いわゆる自動作曲ソフトというもので、
ボタンを押すたびに、MIDIファイルを作成し、楽譜の表示&MIDIファイルの演奏をするというものです。
現在の問題は、「MIDIファイルを実行しても音が鳴らない」という点です。
ボタンを押すたびに、(音は鳴りませんが)新しい楽譜が表示されるので、
「プログラムの実行が途中で止まっている」ということや
「作成されたMIDIファイルがおかしい」ということは無いと思います。
また前述のとおり、アプレットビューアでは音が鳴るので、
「プログラム自体は正常」だと思っています。
そのため私は、
「ブラウザの設定」や、
「ブラウザを経由してJAVAを実行したときに増えてしまう制約」が、
原因だと思っています。

念のためMIDIファイルを実行するために使用しているプログラムを載せます。
実際にはこのプログラムのクラスをインスタンス化して実行しています。

import javax.sound.midi.*;

class MusicPlayer{
 Sequencer sequencer;
 Sequence squence;
 //MIDIシーケンサーを準備する(コンストラクタ)
 public MusicPlayer(){
  try{
   sequencer = MidiSystem.getSequencer();
   if(sequencer!=null){
    sequencer.open();
   }
  }
  catch(MidiUnavailableException e){
   System.out.println("*** "+e+" ***");
  }
 }
 //MIDIミュージックデータをセットする
 public void setMusic(Sequence sq){
  squence=sq;
  try{
   sequencer.setSequence(squence);
  }
  catch(InvalidMidiDataException e){
   System.out.println("*** "+e+" ***");
  }
 }
 //MIDIミュージックデータを再生
 public void playMusic(){
  sequencer.start();
 }
 //MIDIミュージックデータを一時停止
 public void stopMusic(){
  if(sequencer.isRunning()){
   sequencer.stop();
  }
 }
}

以上です。お忙しい中、お手数だとはおもいますが、よろしくお願いします。

補足日時:2001/03/26 19:10
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QJAVAアプレットがブラウザで実行できない

JAVA超初心者です。
じつは、Java2SDK1.4を使ってコンパイルしているんですが、
コンパイルしてできた「classファイル」をブラウザで実行できないんです。
四角い灰色のものがでてきて、マウスを重ねると、
{ load: class **** not found }とステータスバーに表示されるだけです。
(*はファイル名)
appletviewerというJAVAの動作を見るものだと、実行できるのですが・・・。

Web上で配布されているclassファイルはブラウザでも実行できます。
配布されているのと同じソースでやっても自分でコンパイルすると、ブラウザで実行できません。

ブラウザはIE6なので、JAVAに対応してると思います。

どうすればいいのでしょうか?
コンパイルに問題があるのでしょうか?

Aベストアンサー

>CLASSPATHは設定されていませんでした。
>>基本的に 環境変数 CLASSPATH は設定しない方が良いですよ。
>と言われた通り設定しないでそのままにしておきます。

とは、どう言うことでしょうか?
どう言う確認をされましたか?
何を元にCLASSPATH は設定されていないと判断しましたか?
それじゃ、CLASSPATH を設定してみましたか?
とにかく、動かないのなら、確認できる全ての事を行って下さい。

>CODEBASEについてですが、
>MS-DOSとかでは「\」をつかいますが、
>HTMLのばあいは「/」をつかう気がするのですが・・・。
>まちがっていたら教えてください。

間違いです。
HTML が 「/」を使うと言うわけではありません。
基本的な事です。ご自分ではどこまで調べられましたか?
PATH と URL の違いを勉強してください。
そうすると、今回の場合、どちらを使うのかがはっきりするはずです。

こちらに関しても、CLASSPATH の時と同じです。
いろいろと考えられる限り設定を変更してテストしてみて下さい。

以前に私が紹介した Java House の「スペシャルトピック」は読みましたか?
その件については、一切触れておられないようですが。。。
CLASSPATH については、理解出来たのでしょうか?

いままでのご質問内容から kidou00さんの場合は、Javaの勉強をする前に
ファイルシステムについて勉強された方が良いかと思います。(今回はWindowsのファイルシステム)
ファイルシステムを理解せずに、プログラミングをしても決して良いプログラム
は出来ないと思います。
後、アプレットや、サーブレットを勉強する前には、インターネットの基礎知識
を勉強する必要があります。プロトコルや、URIに関しても理解していないと良い
プログラムは出来ません。
(完全に理解する必要はありませんが、概要は知っていないと駄目です)
もう少し視野を広げて勉強してください。

>CLASSPATHは設定されていませんでした。
>>基本的に 環境変数 CLASSPATH は設定しない方が良いですよ。
>と言われた通り設定しないでそのままにしておきます。

とは、どう言うことでしょうか?
どう言う確認をされましたか?
何を元にCLASSPATH は設定されていないと判断しましたか?
それじゃ、CLASSPATH を設定してみましたか?
とにかく、動かないのなら、確認できる全ての事を行って下さい。

>CODEBASEについてですが、
>MS-DOSとかでは「\」をつかいますが、
>HTMLのばあいは「/...続きを読む

Qアプレットを実行すると、×が表示され、Javaアプレットの読み込みに失敗しました。のメッセージが表示されます。

Java JDK5をインストールしました。

C:\Program Files\Javaに
jdk1.5.0_06
jre1.5.0_06
がインストールされています。

コンパイルは、PATHにC:\Program Files\Java\jdk1.5.0_06\binを追加すれば、できるようになりました。


Javaアプレットの読み込みに失敗しました。のメッセージが表示されます。


// 図形の表示

import java.applet.*;
import java.awt.*;

public class Test_0002 extends Applet{
public void paint(Graphics g){
g.fillOval(0, 0, 200, 100);
}
}

Aベストアンサー

HTMLのソースとclassファイル(またはjarファイル)の配置はどうなっていますか?
読み込みに失敗したのなら、classファイルが読み込めていない可能性が高いです。

QJavaアプレットはWebブラウザ上で動作し、Javaサーブレットはサ

JavaアプレットはWebブラウザ上で動作し、Javaサーブレットはサーバー上で動き、Javaアプリケーションは単独で動作するということは理解しました。
以上の3つには機能的な違いがありますか?
JavaアプリケーションにはあってJavaアプレットには無いもの、Javaサーブレットにあって、Javaアプレットには無いもの、JavaサーブレットにあってJavaアプリケーションには無いものなど、もっと詳しく知りたいです。参考の本などもお待ちしています。皆さんの知恵をお貸しください。よろしくおねがいします。

Aベストアンサー

アプレットでは、セキュリティ上機能が一部制限されます。

あとは、アプレット、アプリケーションではおそらく殆どの場合GUIをつくることになるので、Swingなどの知識が必要です。

サーブレットでは最終的にhtml、CSS、Javascript、xmlなどを送信することになるので、その辺の知識が必要です。
またサーブレットでは、JSPというhtmlの中にjavaのコードを埋め込むための言語というか仕様があり、それも関連してきます。


また現在Javaはサーブレットとしてのサーバーサイドで使われていることが多く、アプレットはあまり使われていません。(アプレットはユーザーのPCにJavaVMがないと実行できない、起動に時間がかかるなどの理由で)

QLinux上でjavaアプレットがブラウザ表示できません

すごく初歩的なことかもしれないのですが、Linux上でjavaアプレットがを実行しようとすると下記のような予期しないエラーが表示されました。Linux上ではjavaアプレットはブラウザ(IE)に表示できないのでしょうか?
もし、何か分かることがありましたら、ご教授御願いします。
ちなみにjavaアプリケーションは正常に実行できる環境です。

エラー内容:
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window
server using ':0.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:1
26)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:130)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvi
ronment.java:62)
at java.awt.Window.init(Window.java:208)
at java.awt.Window.<init>(Window.java:252)
at java.awt.Frame.<init>(Frame.java:398)
at java.awt.Frame.<init>(Frame.java:363)
at sun.applet.AppletViewer.<init>(AppletViewer.java:139)
at sun.applet.StdAppletViewerFactory.createAppletViewer(AppletViewer.jav
a:80)
at sun.applet.AppletViewer.parse(AppletViewer.java:1062)
at sun.applet.AppletViewer.parse(AppletViewer.java:996)
at sun.applet.Main.run(Main.java:138)
at sun.applet.Main.main(Main.java:80)

すごく初歩的なことかもしれないのですが、Linux上でjavaアプレットがを実行しようとすると下記のような予期しないエラーが表示されました。Linux上ではjavaアプレットはブラウザ(IE)に表示できないのでしょうか?
もし、何か分かることがありましたら、ご教授御願いします。
ちなみにjavaアプリケーションは正常に実行できる環境です。

エラー内容:
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window
server using ':0.0' as the value of the DISPLAY variable.
...続きを読む

Aベストアンサー

 私の表現が拙くてうまく伝えることができず、お手数をおかけします。

 まず、138行目の件は私の勘違いでした。失礼しました。

(A)>Linuxでアプレットを実行する際に使うブラウザというのは一般的に“Mozilla”や“Netscape”

 そのとおりです。たとえばRedHat7.3でしたら、Mozilla0.9になります。

(B)>Linux上でもhtmlファイルに<applet>タグを埋め込んで、<applet>タグのcode属性にクラスファイルを指定すればよい

 そのとおりです。(A)と(B)には矛盾はありません。

>「Linux上のブラウザでアプレットを実行する」というのはどのようにすればよろしいのでしょうか?

 たとえばIEでアプレットを実行するときには、IEのメニューで「ファイル(F)→開く(O)」を選んで、<applet>タグを含むHTMLファイルをIEで開きますよね。

 これと同様に、Linux上のブラウザ(Mozillaなど)をまず起動し、そのブラウザのメニューからHTMLファイルを開きます。

 例外の内容をよく見ると、「appletviewerがX Windowに接続できない」というエラーのようです。X Windowは起動していますよね。

 私の表現が拙くてうまく伝えることができず、お手数をおかけします。

 まず、138行目の件は私の勘違いでした。失礼しました。

(A)>Linuxでアプレットを実行する際に使うブラウザというのは一般的に“Mozilla”や“Netscape”

 そのとおりです。たとえばRedHat7.3でしたら、Mozilla0.9になります。

(B)>Linux上でもhtmlファイルに<applet>タグを埋め込んで、<applet>タグのcode属性にクラスファイルを指定すればよい

 そのとおりです。(A)と(B)には矛盾はありません。

>「Linux上のブラウザでア...続きを読む

Qjavaアプレットを実行するとエラーになります。

javaアプレットを実行するとエラーになります。

import netscape.javascript.JSObject;
JAObjectをインポートしたアプレットをEclipseで開発しているのですが、赤い字でエラーが出ます。

netscape.javascript.JSException
at netscape.javascript.JSObject.getWindow(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

初心者でどうやってエラーを解決してよいのか分かりません。
クラスパスの設定で解決できる問題なのでしょうか。
分かる方おりましたら教えてください。

Aベストアンサー

>クラスパスの設定で解決できる問題なのでしょうか。
いいえ、そういう問題ではなさそうです。ソースも何もないから詳しいことはいえませんが。

netscape.javascript.JSException
くらいは検索しましたか?
https://developer.mozilla.org/ja/Core_JavaScript_1.5_Guide/LiveConnect_Overview/Java_to_JavaScript_Communication/Using_the_LiveConnect_Classes

呼び出して実行しようとしているJavaScriptは、単体ではきちんと動作しますか?
HTMLに組み込んでブラウザで実行したときに、きちんと動きますか?

問題の切り分けのために、このへんから手をつけたらいかがでしょうか。


このカテゴリの人気Q&Aランキング

おすすめ情報