尝试在我的java应用程序中导入音频文件:错位构造
我遵循了将wav文件导入应用程序的教程。我不知道是否已将文件URL放置在正确的位置:尝试在我的java应用程序中导入音频文件:错位构造,java,audio,user-interface,applet,Java,Audio,User Interface,Applet,我遵循了将wav文件导入应用程序的教程。我不知道是否已将文件URL放置在正确的位置: public class Audioapp extends JApplet { public class Sound // Holds one audio file { private AudioClip song; // Sound player private URL songPath; // Sound path Sound(String f
public class Audioapp extends JApplet
{
public class Sound // Holds one audio file
{
private AudioClip song; // Sound player
private URL songPath; // Sound path
Sound(String filename)
{
try
{
songPath = new URL(getCodeBase(G:\Uni\Programming\Rolling assignements\Week0\Programming week21),filename); // Get the Sound URL
song = Applet.newAudioClip(songPath); // Load the Sound
}
catch(Exception e){} // Satisfy the catch
}
public void playSound()
{
song.loop(); // Play
}
}
}
我得到的错误是:
“此行有多个标记
-令牌上的语法错误,放置错误
建造(s)
-令牌上的语法错误,请删除这些
代币”
我将把URL放在哪里,也因为我想从特定的workplace文件夹而不是我的U盘播放这个文件,我会只放文件名而不是整个路径。我两个都试过了,但都不管用
有什么帮助吗
谢谢很抱歉第一眼没注意到
- 首先:URL需要一个字符串作为构造函数参数,而不是您所做的(注意参数周围的双引号。另外,查看getCodeBase()函数也会有所帮助)
- 第二:由于您似乎缺乏经验,记住
字符是明智的,反斜杠通常用于转义字符,因此在大多数情况下,在字符串常量中使用时,必须通过将其加倍来转义\
songPath=newurl(getCodeBase(“G:\\Uni\\Programming\\rollingassignments\\Week0\\Programming week21”),文件名)代码>
File.separator
静态字段
还有,如果我是你的同事,我会用重物打你,同时对你大喊大叫。使用
e.printStackTrace()
,或适当的日志框架。老师通常不会因此打你,但会给你不好的分数…你会犯什么错误?请发布完整的堆栈跟踪。我认为getCodeBase()
方法将String
作为参数。您忘记了文件路径上的双引号()正如iwawiwi所说,trysongPath=newurl(getCodeBase(“G:/Uni/Programming/rollingassignments/Week0/Programming week21”),文件名)代码>谢谢伙计们^但我收到了这个错误“无效的转义序列(有效的是\b\t\n\f\r\”\'\\)”有什么想法吗?@dhali阅读我的答案,我完全配得上它,伙计!谢谢你的帮助,我会慢慢地学习…:)