我试图在一个游戏中同时播放两个wav声音(背景音乐和一个效果)。我首先使用java中的另一个音频处理程序构造了这段代码,它将处理声音的播放、停止和循环。这种结构将播放背景音乐或效果,但一次只能播放一个。我查看了internet并被告知使用javax.sound.sampled.clip来处理声音,因此重用了相同的构造(播放、停止、循环),但将其切换为使用javax.sound.sampled.clip。现在我完全迷路了。从我目前所读到的内容来看,我在eclipse编辑器中做了所有正确的事情,没有错误,但是当我运行它时,我会得到两个错误中的一个。在eclipse(运行在Linux上)中,抛出一个LineUnavailableException。在eclipse(在Windows7上运行)中,我在此代码的loop()部分中获得了一个java.lang.NullPointerException。如果你能告诉我我做错了什么,或者给我一些相关的文档,我将不胜感激。我假设这是我处理异常的代码中的一些东西,但我不确定。如果你看到任何其他可怕的代码错误,请让我知道我正在努力成为最好的程序员,我可以,并真的感谢建设性的批评。谢谢你抽出时间。
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
/**
* Handles play, pause, and looping of sounds for the game.
* @author Tyler Thomas
*
*/
public class Sound {
private Clip myClip;
public Sound(String fileName) {
try {
File file = new File(fileName);
if (file.exists()) {
Clip myClip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.getAudioInputStream(file.toURI().toURL());
myClip.open(ais);
}
else {
throw new RuntimeException("Sound: file not found: " + fileName);
}
}
catch (MalformedURLException e) {
throw new RuntimeException("Sound: Malformed URL: " + e);
}
catch (UnsupportedAudioFileException e) {
throw new RuntimeException("Sound: Unsupported Audio File: " + e);
}
catch (IOException e) {
throw new RuntimeException("Sound: Input/Output Error: " + e);
}
catch (LineUnavailableException e) {
throw new RuntimeException("Sound: Line Unavailable: " + e);
}
}
public void play(){
myClip.setFramePosition(0); // Must always rewind!
myClip.loop(0);
myClip.start();
}
public void loop(){
myClip.loop(Clip.LOOP_CONTINUOUSLY);
}
public void stop(){
myClip.stop();
}
}
我能够让代码工作,现在对剪辑有了更好的理解。对我帮助最大的页面是http://www3.ntu.edu.sg/home/ehchua/programming/java/j8c_playingsound.html,它分解了所有的内容,并帮助我看到了哪里出错。下面是我最后的工作代码。和以前一样,如果你在逻辑或风格上看到任何可怕的错误或超视,让我知道。
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
/**
* Handles playing, stoping, and looping of sounds for the game.
* @author Tyler Thomas
*
*/
public class Sound {
private Clip clip;
public Sound(String fileName) {
// specify the sound to play
// (assuming the sound can be played by the audio system)
// from a wave File
try {
File file = new File(fileName);
if (file.exists()) {
AudioInputStream sound = AudioSystem.getAudioInputStream(file);
// load the sound into memory (a Clip)
clip = AudioSystem.getClip();
clip.open(sound);
}
else {
throw new RuntimeException("Sound: file not found: " + fileName);
}
}
catch (MalformedURLException e) {
e.printStackTrace();
throw new RuntimeException("Sound: Malformed URL: " + e);
}
catch (UnsupportedAudioFileException e) {
e.printStackTrace();
throw new RuntimeException("Sound: Unsupported Audio File: " + e);
}
catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("Sound: Input/Output Error: " + e);
}
catch (LineUnavailableException e) {
e.printStackTrace();
throw new RuntimeException("Sound: Line Unavailable Exception Error: " + e);
}
// play, stop, loop the sound clip
}
public void play(){
clip.setFramePosition(0); // Must always rewind!
clip.start();
}
public void loop(){
clip.loop(Clip.LOOP_CONTINUOUSLY);
}
public void stop(){
clip.stop();
}
}
问题内容: 我正在尝试在游戏中一次播放两个波形声音(背景音乐和效果)。我首先使用Java中的另一个音频处理程序构造了这段代码,该处理程序将处理声音的播放,停止和循环。这种构造只会播放背景音乐或效果,但一次只能播放一次。我环顾互联网,并被告知使用javax.sound.sampled.Clip处理声音,因此重用了相同的构造(播放,停止,循环),但将其切换为使用javax.sound.sampled.
如何在曲目播放期间添加CSS类“playSound”?
ap.stopBackgroundAudio(CALLBACK) 停止播放音乐。 代码示例 <script src="https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.inc.min.js"></script> <style>.output{ display:block; max-width: 100%;
我正在尝试用js制作一架简单的钢琴,但我不想使用音频样本,而是想以编程方式生成声音。要播放单个声音,我正在使用此博客中的此代码 https://marcgg.com/blog/2016/11/01/javascript-audio/ 我发现在玩了大约50次之后,这种方法停止工作。运行此代码时不播放声音, 不会更改并保持 0。如何在不停止播放声音的情况下修复它?
问题内容: 在Python中播放声音文件(.wav)的最简单方法是什么?最简单的说,我指的是最独立的平台,并且需要最少的依赖。pygame当然是一个选择,但听起来似乎有些过分。 问题答案: Snack Sound Toolkit可以播放wav,au和mp3文件。
问题内容: 我正在尝试播放声音,但无法正常工作。 编辑1: 仍然行不通。 编辑2 :此代码有效。我的设备处于静音模式。 问题答案: 对您的代码进行了修改: Swift 3和Swift 4.1: