unsigned int を QuickTime ファイルから読み取り、それを別の QuickTime ファイルに書き戻す必要があります。
現在、unsigned int を Long に読み込んでいますが、書き戻すときに、正確な数値を unsigned int として 4 バイトで書き戻すことができませんでした。long には、書き戻す必要がある正しい値があります。(例: 3289763894 または 370500) Integer.MAX_VALUE より小さい数値 (例: 2997) の書き込みを読み取ることさえできません。
次の方法を使用して値を書き戻しています
public void writeUInt32(long uint32,DataOutputStream stream) throws IOException {
writeUInt16((int) (uint32 & 0xffff0000) >> 16,stream);
writeUInt16((int) uint32 & 0x0000ffff,stream);
}
public void writeUInt16(int uint16,DataOutputStream stream) throws IOException {
writeUInt8(uint16 >> 8, stream);
writeUInt8(uint16, stream);
}
public void writeUInt8(int uint8,DataOutputStream stream) throws IOException {
stream.write(uint8 & 0xFF);
}
どんな助けでも大歓迎です。