英文:
Javax.sound.sampled.LineUnavailableException:
问题
我在我的 Mac 上创建了一个井字游戏(creategame 类),将其上传到了 GitHub,然后在 Windows 7 上下载了它。
然后在运行 Eclipse 项目时出现了这个错误。
经过研究,我认为这是一个软件/驱动问题,或者它没有检测到声音文件,作为一个初学者,我完全不知所措。
谢谢大家的帮助。
Error with playing sound.
javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 24 bit, stereo, 6 bytes/frame, little-endian not supported.
at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(Unknown Source)
at com.sun.media.sound.DirectAudioDevice$DirectClip.implOpen(Unknown Source)
at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
at com.sun.media.sound.DirectAudioDevice$DirectClip.open(Unknown Source)
at com.sun.media.sound.DirectAudioDevice$DirectClip.open(Unknown Source)
at TicTacToe.CreateGame.playSound(CreateGame.java:157)
at TicTacToe.CreateGame.actionPerformed(CreateGame.java:200)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
public void playSound() {
// Load sounds
try {
AudioInputStream A = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("/A3_04.wav"));
AudioInputStream Bb = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("/Bb4_01.wav"));
AudioInputStream C = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("/C5_01.wav"));
AudioInputStream D = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("/D4_01.wav"));
AudioInputStream E = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("/E4_01.wav"));
AudioInputStream F = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("/F4_01.wav"));
AudioInputStream G = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("/G4_01.wav"));
// IR 和 IR2 = 随机数,最大为 7
AudioInputStream[] Sounds = { C, D, E, F, G, A, Bb };
Clip clip = AudioSystem.getClip();
Clip clip2 = AudioSystem.getClip();
clip.open(Sounds[IR]);
clip2.open(Sounds[IR2]);
clip.start();
clip2.start();
} catch (Exception ex) {
System.out.println("Error with playing sound.");
ex.printStackTrace();
}
}
非常感谢你们的帮助 😄
英文:
I created A tictactoe (creategame class) game on my mac, uploaded it to GitHub, downloaded on windows 7.
Then this error occurred while running the eclipse project.
On researching, I think its a software/driver issue or it's not detecting the sound files, as a beginner, I am completely stumped.
Thanks guys for your help.
Error with playing sound.
javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 24 bit, stereo, 6 bytes/frame, little-endian not supported.
at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(Unknown Source)
at com.sun.media.sound.DirectAudioDevice$DirectClip.implOpen(Unknown Source)
at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
at com.sun.media.sound.DirectAudioDevice$DirectClip.open(Unknown Source)
at com.sun.media.sound.DirectAudioDevice$DirectClip.open(Unknown Source)
at TicTacToe.CreateGame.playSound(CreateGame.java:157)
at TicTacToe.CreateGame.actionPerformed(CreateGame.java:200)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
public void playSound() {
// Load sounds
try {
AudioInputStream A = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("/A3_04.wav"));
AudioInputStream Bb = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("/Bb4_01.wav"));
AudioInputStream C = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("/C5_01.wav"));
AudioInputStream D = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("/D4_01.wav"));
AudioInputStream E = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("/E4_01.wav"));
AudioInputStream F = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("/F4_01.wav"));
AudioInputStream G = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("/G4_01.wav"));
// IR and IR2 = random number max 7
AudioInputStream[] Sounds = { C, D, E, F, G, A, Bb };
Clip clip = AudioSystem.getClip();
Clip clip2 = AudioSystem.getClip();
clip.open(Sounds[IR]);
clip2.open(Sounds[IR2]);
clip.start();
clip2.start();
} catch (Exception ex) {
System.out.println("Error with playing sound.");
ex.printStackTrace();
}
}
Thank you very much for your help
答案1
得分: 0
public class PlaySound {
public PlaySound() {
super();
}
@SuppressWarnings("resource")
public void playSound() {
AudioStream Sounds = null;
try {
InputStream a3 = this.getClass().getClassLoader().getResourceAsStream("A3_04.wav");
InputStream bB4 = this.getClass().getClassLoader().getResourceAsStream("Bb4_01.wav");
InputStream c4 = this.getClass().getClassLoader().getResourceAsStream("C5_01.wav");
InputStream d4 = this.getClass().getClassLoader().getResourceAsStream("D4_01.wav");
InputStream e4 = this.getClass().getClassLoader().getResourceAsStream("E4_01.wav");
InputStream f4 = this.getClass().getClassLoader().getResourceAsStream("F4_01.wav");
InputStream g4 = this.getClass().getClassLoader().getResourceAsStream("G4_01.wav");
AudioStream a = new AudioStream(a3);
AudioStream b = new AudioStream(bB4);
AudioStream c = new AudioStream(c4);
AudioStream d = new AudioStream(d4);
AudioStream e = new AudioStream(e4);
AudioStream f = new AudioStream(f4);
AudioStream g = new AudioStream(g4);
int randomNumber = (int) (Math.random() * 6);
if (randomNumber == 0) { Sounds = a; }
if (randomNumber == 1) { Sounds = b; }
if (randomNumber == 2) { Sounds = c; }
if (randomNumber == 3) { Sounds = d; }
if (randomNumber == 4) { Sounds = e; }
if (randomNumber == 5) { Sounds = f; }
if (randomNumber == 6) { Sounds = g; }
AudioPlayer.player.start(Sounds);
} catch (Exception ex) {
System.out.println("Error with playing sound.");
ex.printStackTrace();
}
}
}
英文:
public class PlaySound {
public PlaySound() {
super();
}
@SuppressWarnings("resource")
public void playSound() {
AudioStream Sounds = null;
try {
InputStream a3 = this.getClass().getClassLoader().getResourceAsStream("A3_04.wav");
InputStream bB4 = this.getClass().getClassLoader().getResourceAsStream("Bb4_01.wav");
InputStream c4 = this.getClass().getClassLoader().getResourceAsStream("C5_01.wav");
InputStream d4 = this.getClass().getClassLoader().getResourceAsStream("D4_01.wav");
InputStream e4 = this.getClass().getClassLoader().getResourceAsStream("E4_01.wav");
InputStream f4 = this.getClass().getClassLoader().getResourceAsStream("F4_01.wav");
InputStream g4 = this.getClass().getClassLoader().getResourceAsStream("G4_01.wav");
AudioStream a = new AudioStream(a3);
AudioStream b = new AudioStream(bB4);
AudioStream c = new AudioStream(c4);
AudioStream d = new AudioStream(d4);
AudioStream e = new AudioStream(e4);
AudioStream f = new AudioStream(f4);
AudioStream g = new AudioStream(g4);
int randomNumber = (int) (Math.random() *6);
if (randomNumber == 0) {Sounds = a; }
if (randomNumber == 1) {Sounds = b; }
if (randomNumber == 2) {Sounds = c; }
if (randomNumber == 3) {Sounds = d; }
if (randomNumber == 4) {Sounds = e; }
if (randomNumber == 5) {Sounds = f; }
if (randomNumber == 6) {Sounds = g; }
AudioPlayer.player.start(Sounds);
} catch (Exception ex) {
System.out.println("Error with playing sound.");
ex.printStackTrace();
}
}
}
专注分享java语言的经验与见解,让所有开发者获益!
评论