سؤال

وأنا أقرأ ملف الرعايا إلى صفيف بايت مع التعليمات البرمجية التالية.

AudioInputStream inputStream = 
    AudioSystem.getAudioInputStream(/*my .wav file */);
int numBytes = inputStream.available();
byte[] buffer = new byte[numBytes];
inputStream.read(buffer, 0, numBytes);
inputStream.close();

هل هناك طريقة بسيطة لإزالة الرؤوس الرعايا إما قبل أو بعد قراءة في مجموعة بايت؟

هل كانت مفيدة؟

نصائح أخرى

والبيانات من طريقة AudioInputStream قراءة () بالفعل بيانات الرعايا الخام. لذلك ليس هناك حاجة للقلق حول رأس الرعايا. إذا كنت لا ترغب في الوصول إلى الأشياء رأس، يمكنك استخدام الكائن AudioFormat المرتبطة بهذا AudioInputStream.

http://download.oracle.com/javase/tutorial/sound/ converters.html

وراجع للشغل، ما لم يكن ملف الرعايا الخاص بك هو صغير حقا، أنك لن تحصل على كل ذلك مع قراءة واحدة كما كنت قد فعلت مع عينتك. سيكون لديك لوضع يقرأ بك في حلقة حين، كما في التعليمات البرمجية المتكررة الأول في البرنامج التعليمي المذكورة أعلاه.

وإذا كان ذلك صحيحا رأس الرعايا هو 44 بايت، لذلك تخطي / إزالة الأول 44 وهناك لديك.

ولا نعرف على وجه اليقين بالرغم من ذلك.

هل ملف الرعايا رأس حجم ثابت؟ إذا كان الأمر كذلك inputStream.skip؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top