Beiträge von 8200

    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