Ich arbeite an PCM als Anfänger, und ich benutze Naudio-Bibliothek. Also habe ich mich gefragt, ob die Speicherung von PCM-Daten von Little Endian und Big Endian abhängt oder ob nicht der Speicher hängt, dann hängt die Speicheradressierung von diesem Big und Little Endian ab, weil ein PCM-Datenleastwertiges Byte und natürlich höchstwertiges Byte erhalten hat und da ich weiß, dass Little Endian und Big Endian eine andere Möglichkeit hatten, diese Bytes im Speicher zu speichern, kann das Lesen der Daten von der Platte in den Speicher falsche Werte erzeugen, bis ich das Array umkehre und es dann in short
umwandelte.Ist die Speicherung von PCM-Daten von Mp3 File von Big Endian und Little Endian abhängig?
Nur Sie verstehen, was ich rede, ist hier ein kurzes Beispiel:
Ein sehr kurzen PCM-Daten von nur 4 Bytes
Address Value
1000 90
1001 AB
1002 12
1003 CD
Dies ist die Lagerung in einem in großer Endianer. und das folgende ist die Lagerung in kleinen Endian
Address Value
1000 CD
1001 12
1002 AB
1003 90
so ist dies der Bytes umgekehrt passieren, wenn Sie PCM lesen NAudio mit? weil ich Little Endian, wenn die BitConverter überprüfen ist oder nicht, das nach ich meine Array von Bytes umgekehrt, der Art wie folgt aus:
Int16 Left_Sample = BitConverter.ToInt16(Buffer, i);
Int16 Right_Sample = BitConverter.ToInt16(Buffer, i + 2);
Int16 Final_Sample = (Int16)(0.5f * ((float)Left_Sample + (float)Right_Sample));
byte[] Final_Byte = BitConverter.GetBytes(Final_Sample);
if (BitConverter.IsLittleEndian){ Array.Reverse(Final_Byte); }
Also zusammenfassend:
Q: Ist der Big und Little Endian beeinflusst den Byte-Speicher?
Frage: Muss ich die Anweisung if(BitConverter.IsLittleEndian)
verwenden, um das Array umzukehren?