【问题标题】:Beginner Java Applet -- Cannot get sound file to playback初学者 Java 小程序 -- 无法播放声音文件
【发布时间】:2013-04-23 20:48:19
【问题描述】:

我正在开发一个初学者 java 项目,我希望在您打开 java 小程序时播放正确的声音。我在“C:\Program Files (x86)\BlueJ”中放置了一个 .au 文件——这是 bluej exe 所在的位置(我认为这是文件的正确位置,就像我在代码中调用它的方式一样)。

import java.awt.*;
import java.applet.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;


public class guitarGame extends Applet implements ActionListener, KeyListener {
AudioClip brainStew; 
Timer timer = new Timer (1000, this);

public void init(){
    brainStew = getAudioClip(getDocumentBase(), "green day - brain stew.au");
    brainStew.play();

}

public void keyReleased(KeyEvent ae){}

public void keyPressed(KeyEvent ae){

    repaint();
}

public void keyTyped(KeyEvent ae){}

public void actionPerformed (ActionEvent ae){}
public void paint (Graphics g)
{   
}
}

任何帮助将不胜感激,谢谢。

【问题讨论】:

    标签: java audio applet awt bluej


    【解决方案1】:

    我已经在"C:\Program Files (x86)\BlueJ" 中放置了一个 .au 文件——这是 bluej exe 所在的位置(我认为这是文件的正确位置,就像我在代码中调用它的方式一样)。

    你想错了。提供小程序页面的服务器也无法访问您的“程序文件”目录,也无法访问小程序。

    getAudioClip(getDocumentBase(), "green day - brain stew.au");
    

    这将导致 JVM 在 与 HTML 相同的目录中寻找资源。

    虽然方法调用可能会正确地对空格字符进行 URL 编码,但也可能不会,因此这会更可靠。

    getAudioClip(getDocumentBase(), "green%20day%20-%20brain%20stew.au");
    

    【讨论】:

    • 我直接从 bluej 运行这个小程序我没有在线上传它(为什么我认为我可以像以前那样调用音频文件)但是我改变了代码,仍然没有音频文件播放运行小程序时。
    • “我直接从 bluej 运行这个小程序” 然后你要么需要 a) 弄清楚 BlueJ 将什么设置为应用程序的“根”。或者 b) 停止使用 BlueJ 来测试小程序,而是使用一些简单的 HTML 和小程序查看器。 -- 由于我不支持BlueJ,而且很少有人回复小程序问题,所以我推荐策略(b)。
    • 我听取了您的建议,找到了 bluej 的根,并将我的音频文件放在那里,它就可以工作了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-05-01
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多