Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [Java] Problem mit AudioInputStream (https://www.delphipraxis.net/95122-%5Bjava%5D-problem-mit-audioinputstream.html)

3_of_8 1. Jul 2007 12:33


[Java] Problem mit AudioInputStream
 
Morgen.

Ich spiel grad unter Java ein bisschen mit nem AudioInputStream herum und habe folgendes Problem:

Ich versuche, den Stream mit der Utility-Klasse AudioSystem in ein passendes Format zu verwandeln und dann die einzelnen Samplewerte auszulesen und in einen int[]-Buffer zu packen. Mein Code dazu sieht so aus:

Code:
    public int[] getIntBuffer()
            throws UnsupportedAudioFileException, IOException {
        AudioInputStream stream = getStream();      
        int[] buffer = null;
        try {
            AudioFormat tmpFormat =
                new AudioFormat(
                        Encoding.PCM_SIGNED,
                        stream.getFormat().getSampleRate(),
                        stream.getFormat().getSampleSizeInBits(),
                        1,
                        stream.getFormat().getFrameSize(),
                        stream.getFormat().getSampleRate(),
                        false);
            AudioInputStream tmpStream =
                AudioSystem.getAudioInputStream(tmpFormat, stream);
           
            byte[] buf = new byte[tmpFormat.getFrameSize()];
       
            buffer = new int[(int) tmpStream.getFrameLength()];
            if (tmpFormat.getFrameSize() > 1) {
                for (int i = 0; i < buffer.length; i++) {
                    tmpStream.read(buf);
                    buffer[i] = (int) (buf[0]) | (int) (buf[1])<<8;
                    System.out.println(buffer[i]);
                }
            } else {
                for (int i = 0; i < buffer.length; i++) {
                    tmpStream.read(buf);
                    buffer[i] = (int) (buf[0]);
                }               
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
       
        return buffer;
    }
Das Problem ist, dass mir der Stream Werte jenseits von Gut und Böse liefert, mit denen ich gar nichts anfangen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz