Meu Soundplayer do java esta em loop

2 respostas
SirDominque
Gente, peguei esse código no youtube, eu consegui fazer funcionar mas eu nao consigo fazer ele sair do loop, não sei mudar o parametro "loop"; Estou tentando aprender toda esta parte "sozinho", entao esta surgindo estas dúvidas:
package researchuser;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sound.midi.*;
import java.io.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import sun.audio.*;
import java.io.*;
import sun.tools.jar.resources.jar_es;

public class SomEmMidi{

    public static void main (String args[])
    {
        JFrame frame = new JFrame();
        frame.setSize (200,200);
        JButton button = new JButton ("Click me");
        frame.add(button);
        button.addActionListener(new AL());
        frame.show(true);
    }
            

public static class AL implements ActionListener{
public final void actionPerformed(ActionEvent e)
{
            try {
                music();
            } catch (IOException ex) {
                Logger.getLogger(SomEmMidi.class.getName()).log(Level.SEVERE, null, ex);
            }
}}

public static void music() throws IOException
{
   AudioPlayer MGP = AudioPlayer.player;
   AudioStream BGM;
   AudioData MD;   
   ContinuousAudioDataStream loop = null;
        
   BGM = new AudioStream(new FileInputStream("notify.wav"));
   MD = BGM.getData();
   loop = new ContinuousAudioDataStream(MD);
   
   
   MGP.start(loop);
   
   
   
     
   
}


}//Fim de Classe

Agradeço Resposta

2 Respostas

S

Veja o construtor do loop que vc está utilizando:

ContinuousAudioDataStream(AudioData data)
Create a continuous stream of audio.

http://javasourcecode.org/html/open-source/jdk/jdk-6u23/sun/audio/ContinuousAudioDataStream.html

Não tenho muita habilidade com áudio em java, mas só de traduzir do inglês já deu pra perceber do que se tratava: fluxo contínuo de áudio… logo vais ter q usar outra coisa se quiser tirar do loop.

SirDominque

Troquei aquele continuous por um outro!
Segue o código caso alguém precise!

package Research;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sound.midi.*;
import java.io.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import sun.audio.*;
import java.io.*;
import sun.tools.jar.resources.jar_es;

public class SomEmMidi{

    public static void main (String args[])
    {
        JFrame frame = new JFrame();
        frame.setSize (200,200);
        JButton button = new JButton ("Click me");
        frame.add(button);
        button.addActionListener(new AL());
        frame.show(true);
    }
            

public static class AL implements ActionListener{
public final void actionPerformed(ActionEvent e)
{
            try {
                music();
            } catch (IOException ex) {
                Logger.getLogger(SomEmMidi.class.getName()).log(Level.SEVERE, null, ex);
            }
}}

public static void music() throws IOException
{
   AudioPlayer MGP = AudioPlayer.player;
   AudioStream BGM;
   AudioData MD;   
   ContinuousAudioDataStream loop = null;
        
   BGM = new AudioStream(new FileInputStream("notify.wav"));
   MD = BGM.getData();
   loop = new ContinuousAudioDataStream(MD);
        AudioDataStream loop2 = new AudioDataStream(MD);
           
           
   MGP.start(loop2);
   
   
   
     
   
}


}//Fim de Classe
Criado 10 de janeiro de 2012
Ultima resposta 18 de jan. de 2012
Respostas 2
Participantes 2