Я работаю над пасьянсом на Java, и мне нужно реализовать звук, когда стол перетасовывается, карта переворачивается и т. Д. Я использовал следующие сайты в качестве ссылки, чтобы попытаться заставить ее работать, но я получаю Null Исключения указателя или неправильно обработанное исключение URL (в зависимости от того, что я настраиваю).
здесь
Кроме того, я использую NetBeans 6.7.1 в качестве моей IDE.
Я постараюсь разбить код и объяснить:
package cardgame;
import java.applet.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JApplet;
import javax.swing.*;
import java.io.*;
import java.net.*;
/**
*
* @author jacob
*/
public class Sound extends JApplet {
private AudioClip song; // Sound player
private String URL = null;
private URL songPath; // Sound path
/*
*sound_1 = shuffling cards
*sound_2 = to discard
*sound_3 = from discard
*sound_4 = cardflip 1
*sound_5 = cardflip 2
*/
Sound(String filename) {
try {
songPath = new URL(getCodeBase(),filename); // Get the Sound URL
} catch (MalformedURLException ex) {
Logger.getLogger(Sound.class.getName()).log(Level.SEVERE, null, ex);
}
song = getAudioClip(songPath); // Load the Sound
}
Sound(int i) {
URL = "./sounds/sound_" + i + ".wav";
System.out.println(URL);
try {
songPath = new URL(URL); // Get the Sound URL
song = getAudioClip(songPath);
} catch (MalformedURLException ex) {
Logger.getLogger(Sound.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void playSound() {
song.loop(); // Play
}
public void stopSound() {
song.stop(); // Stop
}
public void playSoundOnce() {
song.play(); // Play only once
}
}
2 разных конструктора для разных способов, которые я пытался реализовать. Первый создает путь к файлу и передает его. Второй создает путь к файлу в конструкторе с учетом звука # (я составил список того, какие числа соответствуют тому, что звучит для справки). Я получаю следующие ошибки:
./sounds/sound_1.wav
Nov 16, 2009 4:14:13 PM cardgame.Sound
./sounds/sound_2.wav
SEVERE: null
java.net.MalformedURLException: no protocol: ./sounds/sound_1.wav
./sounds/sound_3.wav
at java.net.URL.(URL.java:583)
at java.net.URL.(URL.java:480)
at java.net.URL.(URL.java:429)
./sounds/sound_4.wav
./sounds/sound_5.wav
at cardgame.Sound.(Sound.java:46)
at cardgame.Game.loadSounds(Game.java:712)
at cardgame.Game.(Game.java:62)
at cardgame.Main.main(Main.java:25)
Nov 16, 2009 4:14:13 PM cardgame.Sound
SEVERE: null
java.net.MalformedURLException: no protocol: ./sounds/sound_2.wav
at java.net.URL.(URL.java:583)
at java.net.URL.(URL.java:480)
at java.net.URL.(URL.java:429)
at cardgame.Sound.(Sound.java:46)
at cardgame.Game.loadSounds(Game.java:712)
at cardgame.Game.(Game.java:62)
at cardgame.Main.main(Main.java:25)
Nov 16, 2009 4:14:13 PM cardgame.Sound
SEVERE: null
java.net.MalformedURLException: no protocol: ./sounds/sound_3.wav
at java.net.URL.(URL.java:583)
at java.net.URL.(URL.java:480)
at java.net.URL.(URL.java:429)
at cardgame.Sound.(Sound.java:46)
at cardgame.Game.loadSounds(Game.java:712)
at cardgame.Game.(Game.java:62)
at cardgame.Main.main(Main.java:25)
Nov 16, 2009 4:14:13 PM cardgame.Sound
SEVERE: null
java.net.MalformedURLException: no protocol: ./sounds/sound_4.wav
at java.net.URL.(URL.java:583)
at java.net.URL.(URL.java:480)
at java.net.URL.(URL.java:429)
at cardgame.Sound.(Sound.java:46)
at cardgame.Game.loadSounds(Game.java:712)
at cardgame.Game.(Game.java:62)
at cardgame.Main.main(Main.java:25)
Nov 16, 2009 4:14:13 PM cardgame.Sound
SEVERE: null
java.net.MalformedURLException: no protocol: ./sounds/sound_5.wav
at java.net.URL.(URL.java:583)
at java.net.URL.(URL.java:480)
at java.net.URL.(URL.java:429)
at cardgame.Sound.(Sound.java:46)
at cardgame.Game.loadSounds(Game.java:712)
at cardgame.Game.(Game.java:62)
at cardgame.Main.main(Main.java:25)
Спасибо тем, кто читает, и больше спасибо тем, кто помогает. Я знаю, что это довольно долго, но я бы предпочел получить все это, чем иметь 50 вопросов, которые возвращаются или люди не отвечают из-за недостатка исходной информации. также позволяет мне публиковать только одну ссылку прямо сейчас, поэтому ссылки приведены ниже
dreamincode.net / форумы / showtopic14083.htm
stackoverflow.com/questions/512436/java-playing-wav-sounds
deitel.com/articles/java_tutorials/20060422/LoadingPlayingAudioClips/index.html