carookee - group communication for you
Home / JavaForum / Java allgemein
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
2.722 User online
0 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 1633 von 2212 (74%) |<   <   >   >|

Autor schnuffie
Datum 01.09.04, 08:50
Betreff Re: Probleme mit Soundausgabe


Dein Java-Code funktioniert, ich habe den Code in mein Eclipse kopiert und ausgeführt:

import java.io.*;
import javax.sound.sampled.*;

public class Soundtest {
    
    static AudioInputStream ais;
    static Clip clip;
    
    public static void playSampleFile(String name, float pan, float gain) throws Exception {
        
        // AudioInputStream öffnen
        System.out.println("Start");
        try{
            ais = AudioSystem.getAudioInputStream(new File(name));
            System.out.println("1A");
        }
        catch (IOException e){
            System.out.println("IOException!");
            System.out.println("1B");
        }
        catch (UnsupportedAudioFileException e){
            System.out.println("UnsupportedAudioFileException!");
            System.out.println("1C");
        }
        
        AudioFormat format = ais.getFormat();
        //ALAW/ULAW samples in PCM konvertieren
        if (AudioFormat.Encoding.ULAW.equals(format.getEncoding()) || AudioFormat.Encoding.ALAW.equals(format.getEncoding())){
            AudioFormat tmp = new AudioFormat(
            AudioFormat.Encoding.PCM_SIGNED,
            format.getSampleRate(),
            format.getSampleSizeInBits() * 2,
            format.getChannels(),
            format.getFrameSize() * 2,
            format.getFrameRate(),
            true
            );
            ais = AudioSystem.getAudioInputStream(tmp, ais);
            format = tmp;
        }
        // Clip erzeugen und öffnen
        DataLine.Info info = new DataLine.Info(
        Clip.class,format,((int) ais.getFrameLength() * format.getFrameSize()));
        try{
            clip = (Clip)AudioSystem.getLine(info);
            clip.open(ais);
            System.out.println("2A");
        }
        catch (IOException e){
            System.out.println("IOException!");
            System.out.println("2B");
        }
        catch (LineUnavailableException e){
            System.out.println("LineUnavailableException!");
            System.out.println("2C");
        }
        
        // PAN einstellen
        FloatControl panControl = (FloatControl)clip.getControl(FloatControl.Type.PAN);
        panControl.setValue(pan);
        //MASTER_GAIN einstellen
        FloatControl gainControl = (FloatControl)clip.getControl(FloatControl.Type.MASTER_GAIN);
        gainControl.setValue(gain);
        
        //Clip abspielen
        System.out.println("vor start");
        System.out.println("Framelength: "+clip.getFrameLength());
        System.out.println("Frameposition: "+clip.getFramePosition());
        System.out.println("Format: "+clip.getFormat());
        System.out.println("Active: "+clip.isActive());
        System.out.println("Open: "+clip.isOpen());
        System.out.println("Level: "+clip.getLevel());
        clip.start();
        while(true) {
            try {
                Thread.sleep(100);
                }catch(Exception e) {
                //nothing
            }
            if(!clip.isRunning()) {
                break;
            }
        }
        clip.stop();
        System.out.println("nach start");
        clip.close();
    }
    
    public static void main(String[] args){
        try{
            playSampleFile("d:\\ohno.wav",Float.parseFloat("-995"),Float.parseFloat("395"));
        }
        catch(Exception e){
            e.printStackTrace();
            System.exit(1);
        }
        System.exit(0);
    }
}


Wie "gesagt", ich habe noch nichts mit Sound unter Java gemacht, doch beim Verändern der beiden Float-Werte kann ich keinen Sound-Unterschied feststellen.
Hinweis: Der Vergleich zweier verschiedener Objekte auf Gleichheit kann nur mit der equals()-Methode erfolgen! (siehe meinen kopierten Code)




Diskussionsverlauf:
Probleme mit Soundausgabe
    Re: Probleme mit Soundausgabe
        Re: Probleme mit Soundausgabe
            Re: Probleme mit Soundausgabe

 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com