2015-11-30 122 views
2
import java.io.File; 
import java.util.Scanner; 

class DataManage{ 

    public static void main(String[] args){ 

     MusicControl musicControler; 
     File clip; 
     Scanner scan = new Scanner(System.in); 

     int data; 

     while(true){ 
      data = scan.nextInt(); 

      clip = new File(new StringBuffer().append("LaunchPad/music/").append(data).append(".wav").toString()); 
      musicControler = new MusicControl(clip);   
      musicControler.start(); 
     } 
    } 
} 

import java.io.File; 

import javax.sound.sampled.*; 

class MusicControl extends Thread{ 

    private Clip clip; 
    private File sound; 
    private FloatControl volume; 

    public MusicControl(File sound){ 
      this.sound = sound; 
      musicSetup(); 
    } 

    public void run(){ 
     try{  
      clip.start(); 
      Thread.sleep(clip.getMicrosecondLength()/1000); 
     }catch(Exception e){ 
      System.out.println(e); 
     } 
    } 

    public void musicSetup(){ 
     try{ 
      clip = AudioSystem.getClip(); 
      clip.open(AudioSystem.getAudioInputStream(sound)); 
     }catch(Exception e){ 
      System.out.println(e); 
     } 
    } 
} 

我想在我的覆盆子pi2中播放声音。 这个程序在Window7中运行得非常好。 然而,它在Raspberry pi2中很奇怪。 当我启动程序,它工作得很好,直到它计8. 如果它扮演的8倍以上,它打印覆盆子pi播放wav文件

javax.sound.sampled.LineUnavailaleException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian not supported. 

我怎样才能解决呢?请给我一个手。

回答

1

该错误是在该方法中

public MusicControl(File Sound){ 
     sound = Sound; 
     musicSetup(); 
} 

您正在定义像File Sound其为2种类型和不名称的变量。您必须将Sound替换为该变量的名称。

+0

'声音'只是DataManage类中的一个对象名! – Koo

+0

对不起我的坏..我只是在做一个测试程序..所以我没有真正关心这个问题.. ^^ – Koo

+0

但它不是主要问题,它仍然有一个相同的问题.. – Koo