2015-11-30 161 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