tableau d'octets à court de tableau et d'en revenir en java

Je vais avoir quelques problèmes de prise de données audio stockées dans un tableau d'octets, de la convertir vers un big-endian court tableau, d'encoder, puis, changeant de retour dans un tableau d'octets. Voici ce que j'ai. Les données audio d'origine est stocké dans audioBytes2. Je suis en utilisant le même format pour décoder avec un moins sur la fonction cos au lieu. Malheureusement, les changements de l'octet et types de données court, c'est non négociable.

    short[] audioData = null;
    int nlengthInSamples = audioBytes2.length / 2;
    audioData = new short[nlengthInSamples];

    for (int i = 0; i < nlengthInSamples; i++) {
       short MSB = (short) audioBytes2[2*i+1];
       short LSB = (short) audioBytes2[2*i];
       audioData[i] = (short) (MSB << 8 | (255 & LSB));
    }

    int i = 0;
    while (i < audioData.length) {
        audioData[i] = (short)(audioData[i] + (short)5*Math.cos(2*Math.PI*i/(((Number)EncodeBox.getValue()).intValue())));
        i++;
    }

    short x = 0;
    i = 0;
    while (i < audioData.length) {
        x = audioData[i];
        audioBytes2[2*i+1] = (byte)(x >>> 0);
        audioBytes2[2*i] = (byte)(x >>> 8);
        i++;
    }

J'ai fait tout ce que je peux penser à faire ce travail, mais le plus proche que je suis venu, c'est la faire fonctionner tous les autres encoder/décoder et je n'ai aucune idée pourquoi. Merci pour toute aide.

InformationsquelleAutor Aaron | 2011-04-11