2011-08-16 3 views
0

Ну, я сделал этот класс звука, который работает с клипами, и я заметил проблему с большими файлами. Я видел, что люди говорили о классе под названием BigClip , который является тем же самым, что и Clip, который способен обрабатывать большие файлы ...Где я могу получить BigClip?

Мой вопрос: где я могу получить этот класс .. Я заметил, что он не приходит с нормальным Java XD также, как я implent его в мой код ..

вот мой код:

package org.game.engine; 

import java.io.File; 
import java.io.IOException; 
import javax.sound.sampled.AudioInputStream; 
import javax.sound.sampled.AudioSystem; 
import javax.sound.sampled.Clip; 
import javax.sound.sampled.DataLine; 
import javax.sound.sampled.LineUnavailableException; 
import javax.sound.sampled.UnsupportedAudioFileException; 

//Declaring all the fields 
public class SoundEngine { 
private Clip clip; 
private AudioInputStream sound; 
private boolean stoped = false; 
private DataLine.Info info; 
private File soundFile; 

//Constructor for a sound 
public SoundEngine(String filename) throws Exception { 

// specify the sound to play 
soundFile = new File(filename); 
sound = AudioSystem.getAudioInputStream(soundFile); 

// load the sound into a clip 
info = new DataLine.Info(Clip.class, sound.getFormat()); 
clip = (Clip) AudioSystem.getLine(info); 
System.out.println(Integer.toString(clip.getBufferSize())); 
clip.open(sound); 
} 


    //Method do start/play the sound once 
    public void start() throws LineUnavailableException, IOException, UnsupportedAudioFileException{ 
     if (stoped) { 
      sound = AudioSystem.getAudioInputStream(soundFile); 
      info = new DataLine.Info(Clip.class, sound.getFormat()); 
      clip = (Clip) AudioSystem.getLine(info); 
      clip.open(sound); 
      stoped = false; 
     } 
     clip.start(); 
    } 


    //Method do pause the sound 
    public void pause() { 
     clip.stop(); 
    } 



    //Method to fully stop the sound 
    public void stop() { 
     //make sure sound reloads it self because of the full stop 
     stoped = true; 
     //closes and drains 
     clip.close(); 
     clip.drain(); 
    } 



    //Methd for looping sounds 
    public void loop() throws UnsupportedAudioFileException, LineUnavailableException, IOException { 
      if (stoped) { 
       //reloads the sound incase the sound is fully stoped 
        sound = AudioSystem.getAudioInputStream(soundFile); 
        info = new DataLine.Info(Clip.class, sound.getFormat()); 
        clip = (Clip) AudioSystem.getLine(info); 
        clip.open(sound); 
        stoped = false; 
      } 
      //starts the looping 
     clip.loop(Clip.LOOP_CONTINUOUSLY); 
    } 


    }   
+1

В Guns & Ammo? –

+1

Спрашивайте @ [Andrew Thompson] (http://stackoverflow.com/users/418556/andrew-thompson), так как он разработал его – MByD

+0

как мне его узнать? – Amit

ответ

2

код BigClip показан на моем answer to this question.

Необходимо скомпилировать его для вашего собственного использования. Нет готового Jar, который вы можете добавить в класс-путь. (Хорошо, есть заранее построенный Jar, но не то, что я предлагаю другим использовать - варите свой собственный).

Смежные вопросы