سؤال

أحاول أن أعمل حول المشكلة التالية في android opensles.

opensles المواصفات تقول ما يلي:

http://www.khronos.org/registry/sles/s/s المواصفات / opensl_es_specification_1.0.1.pdf - 8.12

عندما يكون اللاعب في حالة Sl_playstate_playing، وهو تسيطر عليها واجهة Slplayitf [انظر القسم 8.32]، مضيفا سوف يبدأ المخازن المؤقتة بشكل ضمني التشغيل. في حالة المجاعة المستحقة لعدم كفاية المخازن المؤقتة في قائمة الانتظار، يتوقف تشغيل البيانات الصوتية. يبقى اللاعب في حالة Sl_playstate_playing. عند الانتظار من المخازن المؤقتة الإضافية، تلعب استخدام البيانات الصوتية. لاحظ أن جوع المخازن المؤقتة في قائمة الانتظار يؤدي فجوات مسموعة في البيانات الصوتية مجرى. في حالة عدم وجود اللاعب في حالة اللعب، إضافة المخازن المؤقتة لا تبدأ تشغيل الصوت.

للأسف بمجرد أن نصل إلى Android:

p> http://mobilepearls.com/labs/ Native-Android-API / NDK / مستندات / فتحة / index.html - فك شفرة الصوت إلى PCM

اعتمادا على تنفيذ النظام الأساسي، قد يتطلب فك التشفير الموارد التي لا يمكن ترك الخمول. لذلك لا ينصح بذلك تجوع وحدة فك الترميز عن طريق الفشل في توفير عدد كاف من الفارغة المخازن المؤقتة PCM، على سبيل المثال عن طريق العودة من قائمة انتظار العازلة البسيطة الروبوت رد الاتصال دون عناصر مؤقت فارغة أخرى. نتائج تم تجويع وحدة فك الترميز غير محدد؛ قد يختار التنفيذ إما إسقاط بيانات PCM فك شفرة، وقفة عملية فك التشفير، أو في الحالات الشديدة إنهاء وحدة فك الترميز.

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

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

المحلول

لا يبدو أن هناك طريقة حول هذه المشكلة.يبدو أن المشاريع الأخرى تستخدم واجهات برمجة تطبيقات منخفضة المستوى (مثل libstagefright) للقيام برمزها.تتيح لك هذه الطريقة الحصول على البيانات

[تحرير] ليس هناك طريقة حول قضية الجوع.الروبوت فقط لا يلتزم المواصفات.تحتاج في الأساس إلى المخزن المؤقت في الذاكرة وتأكد من استخدام إيقاف مؤقت واستئناف فك التشفير عند الحاجة للتحكم في تدفق البيانات.

href="https://groups.google.com/forum/# !/Android-ndk/jllfg-g2e9s" er="nofollow"> هذا مناقشة حول الموضوع في مجموعة Google

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