简体   繁体   中英

Raspberry pi play wav file

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

I'm trying to play a sound in my Raspberry pi2. This program works really well in Window7. However, it works strange in the Raspberry pi2. When I start the program, it works well until it counts 8. If it plays more than 8 times, it prints

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

How can I fix it? Please give me a hand.

The error is in this method

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

You are defining a variable like File Sound which is 2 types and no name. You have to replace the Sound with a name for the variable.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM