Javax.sound.sampled.LineUnavailableException:

huangapple 未分类评论44阅读模式
英文:

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();
	}
}

附有 Eclipse 截图

非常感谢你们的帮助 😄

英文:

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();
    
    		}
    	}

Screenshot of eclipse

Thank you very much for your help Javax.sound.sampled.LineUnavailableException:

答案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();
		}
	}

}

huangapple
  • 本文由 发表于 2020年4月7日 03:04:05
  • 转载请务必保留本文链接:https://java.coder-hub.com/61067119.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定