Java-Gaming.org    
Featured games (91)
games approved by the League of Dukes
Games in Showcase (581)
games submitted by our members
Games in WIP (500)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Sound problem  (Read 581 times)
0 Members and 1 Guest are viewing this topic.
Offline bauerr

Junior Member




Java!!!!!!!!!!! !!!


« Posted 2005-09-15 07:54:18 »

Hello,

I have 3 sound files:

gunshot5.wav
javax.sound.sampled.AudioInputStream@1549f94
PCM_UNSIGNED 8000.0 Hz, 8 bit, mono, 1 bytes/frame,

bird.wav
javax.sound.sampled.AudioInputStream@175d6ab
PCM_UNSIGNED 11025.0 Hz, 8 bit, mono, 1 bytes/frame,

boom.wav
javax.sound.sampled.AudioInputStream@12940b3
PCM_SIGNED 11025.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian

The problem is, if I implement them in my game the file bird.wav can be played only once. If it should be replayed again nothing can be heared. The other two files can be replayed without any problem.
I have no idea what the problem could be. I'm using a modified sound routine I found here in the forum.



import java.io.IOException;
import java.net.URL;
import java.util.Enumeration;
import java.util.Vector;

import javax.sound.sampled.AudioFormat;
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;

public class SoundMachine {

  Vector clips;
  Vector streams;
  int counter;
 
  public SoundMachine(){
    //Vectoren als Datenspeicher
    clips   = new Vector();
    streams = new Vector();
   
    //Counter für Vectoren
    counter = 0;
  }
 
  public int addClip(String file){
    int retval = 0;
   
    //hole URL
    URL sound_url = this.getClass().getClassLoader().getResource(file);
   
    try {
      //AudioInputStream
      AudioInputStream ais = AudioSystem.getAudioInputStream(sound_url);
      System.out.println("-------------------------");
      System.out.println(sound_url);
      System.out.println(ais);
     
      //Format ermitteln
      AudioFormat af = ais.getFormat();
      System.out.println(af);
     
      //Erst mal nur PCM-Files
      if((af.getEncoding()!=AudioFormat.Encoding.PCM_SIGNED)&&(af.getEncoding()!=AudioFormat.Encoding.PCM_UNSIGNED)){
        System.out.println("Format kann nicht abgespielt werden");
      }
     
      //Clip erzeugen und öffnen
      DataLine.Info info = new DataLine.Info(Clip.class,af,((int)ais.getFrameLength()* af.getFrameSize()));
     
     
      Clip clip = (Clip)AudioSystem.getLine(info);
     
      clips.add(counter,clip);
      streams.add(counter,ais);
     
      retval = counter;
      counter++;
     
    } catch (UnsupportedAudioFileException e) {
    } catch (IOException e) {
    } catch (LineUnavailableException e) { }
   
    return retval;
  }
 
  public void play(int soundnum){
    Clip clip = (Clip) clips.elementAt(soundnum);
    AudioInputStream ais = (AudioInputStream) streams.elementAt(soundnum);
    try {
      if(!clip.isOpen()){
        clip.open(ais);
      }
      if(clip.isRunning()){
        clip.stop();
      }
     
      clip.setFramePosition(0);
      clip.start();
     
     } catch (LineUnavailableException e) {
    } catch (IOException e) {
    }
  }
 
  public void loop(int soundnum){
    Clip clip = (Clip) clips.elementAt(soundnum);
    AudioInputStream ais = (AudioInputStream) streams.elementAt(soundnum);
   
    try {
      clip.open(ais);
      clip.loop(Clip.LOOP_CONTINUOUSLY);
    } catch (LineUnavailableException e) {
    } catch (IOException e) {
    }
  }
 
  public void stop(int soundnum){
    Clip clip = (Clip) clips.elementAt(soundnum);
    clip.stop();
  }
 
  public void stopAll(){
    for(Enumeration e = clips.elements(); e.hasMoreElements()Wink{
      Clip clip = (Clip) e.nextElement();
      clip.stop();
      clip.close();
    }
   
  }
}


I have no idea in which direction I should investigate for the problem.
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

xsi3rr4x (55 views)
2014-04-15 18:08:23

BurntPizza (53 views)
2014-04-15 03:46:01

UprightPath (66 views)
2014-04-14 17:39:50

UprightPath (49 views)
2014-04-14 17:35:47

Porlus (66 views)
2014-04-14 15:48:38

tom_mai78101 (90 views)
2014-04-10 04:04:31

BurntPizza (151 views)
2014-04-08 23:06:04

tom_mai78101 (246 views)
2014-04-05 13:34:39

trollwarrior1 (204 views)
2014-04-04 12:06:45

CJLetsGame (211 views)
2014-04-01 02:16:10
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!