• Wir präsentieren Dir heute ein Stellenangebot für einen Frontend-Entwickler Angular / Java in Braunschweig. Hier geht es zur Jobanzeige

Headerdaten einer wav Datei auslesen

I

IT-homas

Mitglied
Guten Abend,

ich habe ein Programm zu schreiben, dass die Bestandteile des Headers einer wav Datei über printf ausgibt. Insgesamt klappt das auch recht gut. Bloß folgen z.B. auf RIFF zusätzliche Zeichen und es wird WAVEfmt, statt WAVE ausgegeben.

Woran liegt das?

C:
#include <stdio.h>
#include <stdlib.h>

struct Wav {
    char ChunkID[4];
    int ChunkSize;
    char Format[4];
    char subChunk1ID[4];
    int subChunk1Size;
    short audioFormat;
    short numChannels;
    int sampleRate;
    int byteRate;
    short blockAlign;
    short bitsPerSample;
    char subChunk2ID[4];
    int subChunk2Size;
};

union ReadWav {
    struct Wav header;
    char c[44];
};
int main()
{
    union ReadWav u;
    char i;
    FILE *datei;
    in=fopen("test.wav","rb");
    for(i=0; i<43; i++){
        u.c[i]=fgetc(datei);
    }

    printf("ChunkID: %s\n",u.header.ChunkID);
    printf("ChunkSize: %d\n",u.header.ChunkSize);
    printf("Format: %s\n", u.header.Format);
    printf("subChunk1ID: %s\n", u.header.subChunk1ID);
    printf("subChunk1Size: %d\n", u.header.subChunk1Size);
    printf("audioFormat: %d\n", u.header.audioFormat);
    printf("numChannels: %d\n", u.header.numChannels);
    printf("sampleRate: %d\n", u.header.sampleRate);
    printf("byteRate: %d\n", u.header.byteRate);
    printf("blockAlign: %d\n", u.header.blockAlign);
    printf("bitsPerSample: %d\n", u.header.bitsPerSample);
    printf("subChunk2ID: %s\n", u.header.subChunk2ID);
    printf("subChunk2Size: %d\n", u.header.subChunk2Size);

    return 0;
}

asugabe.PNG

Vielen Dank und freundliche Grüße,

Thomas
 

Anhänge

  • asugabe.PNG
    asugabe.PNG
    8,3 KB · Aufrufe: 0

Ähnliche Java Themen

Anzeige

Neue Themen


Oben