Java初心者がwavファイル再生について質問

このQ&Aのポイント
  • Java初心者がeclipse3.6でJAVAの勉強をしている中で、Applet.newAudioClip()を使用してwavファイルの効果音を再生しようとしていますが、エラーメッセージが表示されてしまいます。
  • ファイル名を指定しても同様のエラーメッセージが表示され、初心者なのでエラーメッセージの意味がよくわかりません。ファイルの置き場所やgetResource()の引数の指定に問題があるのでしょうか?
  • 質問者は助言を求め、問題の解決方法を教えていただけると助かります。
回答を見る
  • ベストアンサー

java初心者 wavファイル再生について

こんにちは。 趣味でプログラミングをしている者です。 javascriptでポーカーを再現するくらいです。 eclipse3.6でJAVAの勉強をしているのですが、 Applet.newAudioClip() について、質問させていただきます。 http://d.hatena.ne.jp/aidiary/20041003/1251379247 上記のサイトを参考にして ボールが壁に当たった時に wavファイルの 効果音を鳴らすように試みたのですが、 以下のようなメッセージが表示されてしまいました。 ----------------------------------------------------------- Exception in thread "main" java.lang.NullPointerException at sun.applet.AppletAudioClip.<init>(AppletAudioClip.java:48) at java.applet.Applet.newAudioClip( Applet.java:279 ) at many_balls.soundball.<init>( soundball.java:12 ) at many_balls.soundpanel.<init>( soundpanel.java:24 ) at many_balls.soundframe.<init>( soundframe.java:12 ) at many_balls.soundframe.main( soundframe.java:21 ) ----------------------------------------------------------- 効果音をなしにしたときは、描画されたのですが・・・ http://d.hatena.ne.jp/hhelibex/20090214/1234629150 上記のサイトを見て、ファイル名を   AudioClip sef = Applet.newAudioClip( classname.class.getResource("/fimename.wav") ); とか、 sef = Applet.newAudioClip( classname.class.getClassLoader().getResource("filename.wav") ); とかにしても、同様のエラーメッセージがコンソール部分に 表示されてしまいました。 初心者なもので、エラーメッセージの意味がよくわからないのですが。 ファイルを置く場所が違っている、ということなのでしょうか? getResource( arg ) の引数の指定の仕方が違うのでしょうか? もしよろしかったら教えていただけないでしょうか よろしくおねがいします。

noname#173931
noname#173931
  • Java
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

> getClass().getResource("ファイル名") は、どこのディレクトリ > を参照しに行っているのでしょうか パスが通っている場所をすべて参照しに行っているわ。 > 参考サイト http://terai.xrea.jp/Swing/ClassLoader.html こういうのはどうかしら? 他にググるとしたら 「getClassLoader」「getResource」をキーワードにするといいわ。

noname#173931
質問者

お礼

再び回答していただき、ありがとうございます。 クラスパスを通せばよい、ということでしょうか。 貴重な時間をさいての回答、ありがとうございました。

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

このエラーは filename.wav が見えていないときに出るわね。 そこを解決してあげればいいのよ。

noname#173931
質問者

お礼

回答していただきありがとうございます。 ユーザーID名を見る限り、以前にも回答していただいた方だと思います。 貴重な時間をさいての回答ありがとうございました。

noname#173931
質問者

補足

回答していただきありがとうございます もしよければ、もう少し詳しく教えていただけないでしょうか。 質問文のサイトに、 pong = Applet.newAudioClip(getClass().getResource("pong.wav")); とありますが、 その後、 Applet.newAudioClipにはjava.net.URLのオブジェクトが入ると知りまして、 絶対パスを指定したURLクラスのオブジェクトを引数にしていしたら、 wavファイルが再生されたのですが、 上記の getClass().getResource("ファイル名") は、どこのディレクトリ を参照しに行っているのでしょうか。 eclipseを使っていまして、ワークスペースのこのクラスの binフォルダ、および、クラスファイルのフォルダに wavファイルを置いてもエラーメッセージが表示されました wavファイルをどこに置いたらよいのか教えていただけないでしょうか。 よろしくおねがいします。

関連するQ&A

  • Linux上で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)

    • ベストアンサー
    • Java
  • javaに詳しい方に質問です

    javaに詳しい方に質問です 私が使っているパソコンはwindowXPで今BG.java , BG.html の2つのファイルがあります ブロック崩しのソースです コマンドプロンプト上で下記のように操作をしたら、(画面の貼り方がわからなく申し訳ありません) C:\j2sdk1.4.2_05\bin>javac BG.java C:\j2sdk1.4.2_05\bin>appletviewer BG.html Exception in thread "main" java.util.MissingResourceException: Can't find resour ce for bundle sun.applet.resources.MsgAppletViewer, key appletpanel.badattribute .exception at java.util.ResourceBundle.getObject(ResourceBundle.java:314) at java.util.ResourceBundle.getObject(ResourceBundle.java:311) at java.util.ResourceBundle.getString(ResourceBundle.java:274) at sun.applet.AppletMessageHandler.getMessage(AppletMessageHandler.java: 39) at sun.applet.AppletPanel.showAppletStatus(AppletPanel.java:755) at sun.applet.AppletPanel.init(AppletPanel.java:190) at sun.applet.AppletViewer.<init>(AppletViewer.java:177) at sun.applet.StdAppletViewerFactory.createAppletViewer(AppletViewer.jav a:82) at sun.applet.AppletViewer.parse(AppletViewer.java:1122) at sun.applet.AppletViewer.parse(AppletViewer.java:1056) at sun.applet.Main.run(Main.java:138) at sun.applet.Main.main(Main.java:80) というなんだかよくわからない表示がされて実行がされませんでした 本当ならプログラムを張り付けたかったのですが、文字数に制限があるし ダウンロード先を忘れてしまいまして… ということなので詳しいことは構わないので、この表示が何を表しているのか ご回答お願いします

    • ベストアンサー
    • Java
  • アプレットがうまく動かない…

    javaを勉強しています。本を参考にして、下記のようなアプレットを書いたのですが、さらにその下のようなエラー(?)が表示されてしまって、画像が表示されません。もしこれだけの情報で見当がつきましたら、よろしくお願いします。 import java.applet.Applet; import java.awt.Graphics; import java.awt.Image; public class main extends Applet{ Image img; public void init(){ img = getImage(getDocumentBase(), "test.jpg"); } public void paint(Graphics g){ g.drawImage(img,0,0,this); } } java.lang.UnsupportedClassVersionError: main (Unsupported major.minor version 49 .0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:537) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12 3) at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:157) at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:123) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:561) at sun.applet.AppletPanel.createApplet(AppletPanel.java:617) at sun.applet.AppletPanel.runLoader(AppletPanel.java:546) at sun.applet.AppletPanel.run(AppletPanel.java:298) at java.lang.Thread.run(Thread.java:534)

    • ベストアンサー
    • Java
  • [JAVA]ProcessBuilderで「java -version」を実行できない

    以下のプログラムで「java -version」を実行しようとするとエラーになります。「java」だけですと実行できますが「-version」をつけるとエラーになります。 ---プログラムの内容--- import java.io.*; public class test4518 { public static void main(String[] args) throws Throwable{ ProcessBuilder pb = new ProcessBuilder(new String[]{"java -version"}); Process p = pb.start(); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = br.readLine()) != null) { System.out.println(line); } } } ーーーエラーの内容ーーー Exception in thread "main" java.io.IOException: CreateProcess: "java -version" error=2 at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.<init>(Unknown Source) at java.lang.ProcessImpl.start(Unknown Source) at java.lang.ProcessBuilder.start(Unknown Source) at test4518.main(test4518.java:5)

    • ベストアンサー
    • Java
  • Internet Explorer で動かないJava Applet?

    Java Applet を作りました。 モジラでは問題なく動いたのですが、Internet Explorer (V6.0) では動きませんでした。IEの問題かな、とも思ったのですが、他の人の作ったアプレットは動いているようです。 Javaコンソールには次のようなメッセージが出ていました。 ---------------------- Error loading class: myClientApplet1 java.lang.NoClassDefFoundError java.lang.ClassNotFoundException: myClientApplet1 at com/ms/vm/loader/URLClassLoader.loadClass at com/ms/vm/loader/URLClassLoader.loadClass at com/ms/applet/AppletPanel.securedClassLoad at com/ms/applet/AppletPanel.processSentEvent at com/ms/applet/AppletPanel.processSentEvent at com/ms/applet/AppletPanel.run at java/lang/Thread.run ---------------------- モジラで動いて IE で動かないというのが良く分からないのですが、プログラミングの改善方法など、アドバイスをいただけないでしょうか? (バージョンの古いIEだと動いているようです)

    • ベストアンサー
    • Java
  • 【Java】画像表示が出来ない!

    Java初心者です。 Eclipseを使って、Javaアプレットでjpeg画像を表示させようとしたのですが、上手くいきません。表示したい画像をインポートして、このようなコードを書きました。 import java.applet.Applet; import java.awt.*; /* <applet code="クラス名.class" width="497" height="600"> <param name="img" value="img/test.jpg"> </applet>*/ public class クラス名 extends Applet { Image img; public void init() { img = getImage(getDocumentBase() , getParameter("/test.jpg")); } public void paint(Graphics g) { g.drawImage(img , 0 , 0 , this); } } Javaアプレットで実行しても、アプレットは真っ白なままです。GIF画像でも試してみましたが、同じく失敗でした。他のJavaアプレットのプログラム(図形を表示したり)は成功したので、私のパソコンのJavaは問題ないと思います。回答よろしくお願いします。

    • ベストアンサー
    • Java
  • Oracle 10gをRedHat EnterPrise3にインストールする際に

    CDを読み込む際、runInstallerを実行すると以下のメッセージが出力されます。どなたか対処方を教えてください。宜しくお願いします。 Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using 'inspiron:0.0' as the value of the DISPLAY variable. at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:134) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:141) at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62) at java.awt.Window.init(Window.java:231) at java.awt.Window.<init>(Window.java:275) at java.awt.Frame.<init>(Frame.java:401) at oracle.ewt.popup.PopupFrame.<init>(Unknown Source) at oracle.ewt.lwAWT.BufferedFrame.<init>(Unknown Source) at oracle.sysman.oio.oioc.OiocOneClickInstaller.<init>(OiocOneClickInstaller.java:349) at oracle.sysman.oio.oioc.OiocOneClickInstaller.main(OiocOneClickInstaller.java:2106)

  • Appletが動きません・・・

    こんにちは。今日Javaを学び始めた超初心者です。 -HelloApplet.java-------------------------- import java.awt.Graphics; import java.applet.Applet; class HelloApplet extends Applet{ public void paint(Graphics g){ g.drawString("Hello World", 50,25); } } ------------------------------------------- で、これをコンパイルしてHTMLに組み込み、Appletviewerで見てみるのですが、 以下のようなメッセージが出ます。 ---------------------------------------------- C:\java>appletviewer hello.html load: HelloApplet.class は public ではありません。あるいは public なコンストラク タを持っていません。 java.lang.IllegalAccessException: Class sun.applet.AppletPanel can not access a member of class HelloApplet with modifiers "" at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:57) at java.lang.Class.newInstance0(Class.java:302) at java.lang.Class.newInstance0(Class.java:302) at java.lang.Class.newInstance(Class.java:261) at sun.applet.AppletPanel.createApplet(AppletPanel.java:617) at sun.applet.AppletPanel.runLoader(AppletPanel.java:546) at sun.applet.AppletPanel.run(AppletPanel.java:298) at java.lang.Thread.run(Thread.java:534) ---------------------------------------------- HTMLを開くと赤い「×」が出ています。 環境ですが、 CLASSPATH:C:\j2sdk1.4.2_04\lib\tools.jar;.;c:\java PATH:C:\WINDOWS;C:\WINDOWS\COMMAND;C:\j2sdk1.4.2_04\bin 作業フォルダ: c:\java となっています。 おかしいところはないと思うのですけど・・・。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • Java2Dの実行エラー

    とあるサイトからJDK1.3と次のようなサンプルソースを 入手しました。 ------------------------------------------------- import java.awt.Frame; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Shape; import java.awt.geom.*; public class GeomLine extends Frame { public GeomLine() { super("Geometry Test"); } public void paint(Graphics g) { // Graphics2Dの取得 Graphics2D g2 = (Graphics2D)g; // 描画図形の決定 Shape s = new Line2D.Float(10.0f, 50.0f, 90.0f, 150.0f); // アウトラインの描画 g2.draw(s); } public static void main(String[] args) { Frame f = new GeomLine(); f.setSize(100,200); f.setVisible(true); } } ------------------------------------------------- 以上のようなサンプルソースをJKD1.3でコンパイルを行い、 appletviewerで上ソースをコンパイルしたclassファイルを コールしているHTML文を動かしてみたところ、以下のような メッセージが出てしまい、アプレットウィンドウは表示された ものの何も空白のウィンドウになってしまいました。 ------------------------------------------------- C:\JAVA_S~1\ex2>appletviewer ex02.htm java.lang.ClassCastException: GeomLine at sun.applet.AppletPanel.createApplet(AppletPanel.java:579) at sun.applet.AppletPanel.runLoader(AppletPanel.java:515) at sun.applet.AppletPanel.run(AppletPanel.java:293) at java.lang.Thread.run(Thread.java:484) ------------------------------------------------- 上記エラーを解消するにはどのようにしたらよろしいのでしょうか?

    • ベストアンサー
    • Java
  • FirefoxでJava Appletが表示できません

    掲題のとおり、IE7で表示されるJava AppletがFirefoxで表示できません。 各Javaコンソール出力は以下の通りで、FirefoxのJRE versionが 1.5.0_12になっていることが原因と思いますが、FirefoxのJRE versionをIEと同じ1.6.0_05にする方法を教えてください。 == Firefox 2.0 の Javaコンソール出力 === Java Plug-in 1.5.0_12 使用中の JRE のバージョン 1.5.0_12 Java HotSpot(TM) Client VM java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at sun.applet.AppletClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.applet.AppletClassLoader.loadCode(Unknown Source) at sun.applet.AppletPanel.createApplet(Unknown Source) at sun.plugin.AppletViewer.createApplet(Unknown Source) at sun.applet.AppletPanel.runLoader(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) == Internet Explorer 7 の Javaコンソール出力 === Java Plug-in 1.6.0_05 使用中の JRE のバージョン 1.6.0_05 Java HotSpot(TM) Client VM

    • ベストアンサー
    • Java

専門家に質問してみよう