坦克大战小游戏在主类中怎样加背景音乐

CS番茄 2013-08-16 09:14:17
百度了一下代码用AudioStream 则提示Access restriction: The type AudioStream is not accessible due to restriction on required library D:\Program Files\Java\jdk1.7.0_25\jre\lib\rt.jar


不会用JMF

为了具有更好的移植性,可以使用url么,怎样操作么?


或者有其它办法吗?




import java.applet.*;
public class PlaySound{
public static void main(String[] args){
//String music = "mu.wav";
AudioClip clip = Applet.newAudioClip(PlaySound.class.getClass().getResource("music/01.wav"));
clip.play();
}
}


01.wav是放在src文件夹下的music目录 运行起来 结果java.lang.NullPointerException
...全文
391 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lcf 2013-08-16
  • 打赏
  • 举报
回复
不会用JMF是什么意思。。搜一段代码有多难?
暖暖猫 2013-08-16
  • 打赏
  • 举报
回复 1
引用 3 楼 u010167215 的回复:
[quote=引用 2 楼 podongxi777442156445 的回复:]

import java.applet.Applet;
import java.applet.AudioClip;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;


public class PlaySound {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String file=new File("music/mmj.wav").getAbsolutePath();
		AudioClip clip = null;
		try {
			clip = Applet.newAudioClip(new URL("file://"+file));
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}    
	    clip.play(); 
	}

}

试了那段代码几次都是无反应,但是这次没有thow Exception 路径也试了,同样没有反应。 不过刚才酷狗突然打开,播了一下音乐,不知是自己不小心打开,还是那段代码相应迟钝~[/quote] 我没敢试验,就是测试通过了就扔上来了,上班不能开····,外放容易死人的,你在调试下吧,或者是你调用的方法不对
CS番茄 2013-08-16
  • 打赏
  • 举报
回复
引用 2 楼 podongxi777442156445 的回复:

import java.applet.Applet;
import java.applet.AudioClip;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;


public class PlaySound {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String file=new File("music/mmj.wav").getAbsolutePath();
		AudioClip clip = null;
		try {
			clip = Applet.newAudioClip(new URL("file://"+file));
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}    
	    clip.play(); 
	}

}

试了那段代码几次都是无反应,但是这次没有thow Exception 路径也试了,同样没有反应。 不过刚才酷狗突然打开,播了一下音乐,不知是自己不小心打开,还是那段代码相应迟钝~
暖暖猫 2013-08-16
  • 打赏
  • 举报
回复

import java.applet.Applet;
import java.applet.AudioClip;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;


public class PlaySound {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String file=new File("music/mmj.wav").getAbsolutePath();
		AudioClip clip = null;
		try {
			clip = Applet.newAudioClip(new URL("file://"+file));
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}    
	    clip.play(); 
	}

}

暖暖猫 2013-08-16
  • 打赏
  • 举报
回复
路径吧,应该是没有找到那个音乐所在的地方,你可以试着用绝对路径试验下,可以的话,在转换相对路径
CS番茄 2013-08-16
  • 打赏
  • 举报
回复
引用 4 楼 podongxi777442156445 的回复:
[quote=引用 3 楼 u010167215 的回复:] [quote=引用 2 楼 podongxi777442156445 的回复:]

import java.applet.Applet;
import java.applet.AudioClip;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;


public class PlaySound {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String file=new File("music/mmj.wav").getAbsolutePath();
		AudioClip clip = null;
		try {
			clip = Applet.newAudioClip(new URL("file://"+file));
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}    
	    clip.play(); 
	}

}

试了那段代码几次都是无反应,但是这次没有thow Exception 路径也试了,同样没有反应。 不过刚才酷狗突然打开,播了一下音乐,不知是自己不小心打开,还是那段代码相应迟钝~[/quote] 我没敢试验,就是测试通过了就扔上来了,上班不能开····,外放容易死人的,你在调试下吧,或者是你调用的方法不对[/quote] 直接扔上eclipse 就一直抛exception 在百度上下载人家已经写好的代码,整个游戏的代码,把它那段playmusic的代码修改后和音乐扔到我的代码中,还是抛空指针。。。。 但是它原代码直接不会出错,可以运行。 现在就是那个Playmusicd度、单独给个main运行后,都抛空指针,应该不会是调试方式不对吧~ 不过,谢谢你先

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧