Byte [] von big endian zu little endian umwandeln

  • Hallo Leute,



    ich hänge jetzt leider schon länger beim Umwandeln von Bytes. Ich benötige dies für einen 16bit RAW PCM Audio-Player.


    Ich möchte ganz einfach ein big endian kodiertes byte array umwandeln in ein little endian kodiertes.


    Lösung 1:

    for (int i=0, j=song.length - 1; i byte b = song[i];
    song[i]= song[j];
    song[j]= b; }


    Problem: das erste Audio-Sample wird zum letzten Audio-Sample usw. Beim Abspielen hört man die Audiodatei also verkehrt.





    Lösung 2:


    byte[] songl = new byte[song.length];
    for (int i=0; i < song.length; i=i+16)
    for (int j=i, k=i+15; j<=i+15; j++, k--)
    songl[j]=song[k];


    Dieser Code spielt zwar nun richtig ab, allerdings ist die Wiedergabe ziemlich rauschig. ALso irgendwo ist hier noch ein kleiner Fehler drinnen.






    Ich hoffe Ihr könnt mir da helfen.



    Vielen Dank!


    MfG,
    Arthur

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!