سؤال
إذا كان بإمكان أي من زملائي من مستخدمي Xuggler أن يخبروني بما أفعله ، فسيكون ذلك رائعًا! أفعل ما يلي:
- القراءة من OGV (فيديو OGG)
- تصطف الصوت والفيديو
- الكتابة مرة أخرى إلى OGV
يبدو بسيطا؟ المشكلة التي أواجهها في فئة QueUeMixer الخاصة بي هي أن ملف الإخراج يلعب الصوت 2x سريعًا جدًا ، وبغض النظر عن ما أتحقق منه أو تغييره فيما يتعلق بـ PTS ، فإنه لا يتحسن.
مشروع Eclipse وجميع الملفات المستخدمة في هذا الرابط:http://dl.dropbox.com/u/7316897/paul-xuggled.zip
لإجراء اختبار وتجميع وتنفيذ فئة StreamManager ؛ يتم تضمين ملف اختبار OGV. قبل أن يسأل أي شخص ، نعم ، يجب أن أقوم بتصوير البيانات حيث سيتم خلطها مع بيانات أخرى في إصدار مستقبلي.
المحلول 2
الإصلاح هو مضاعفة عدد العينة من قبل اثنين عند استخراجهما من المختصر.
samples = new short[(int) audioSamples.getNumSamples() * 2];
audioSamples.getByteBuffer().asShortBuffer().get(samples);
وجود نصف العينات يؤدي إلى تشغيل الصوت مرتين بالسرعة.
نصائح أخرى
الصوت لديه معدل العينة. تأكد من نسخ معدل العينة من الإدخال إلى الإخراج ، وإلا فقد يستخدم النظام افتراضيًا (مثل 44 كيلو هرتز بينما تم أخذ عينات من البيانات الأصلية عند 22 كيلو هرتز مما قد يخلق مثل هذا التأثير).