سؤال

ولدي سؤال سريع: أنا تحميل ملف MP3 إلى كائن NSData وبعد ذلك تشغيله باستخدام AVAudioPlayer في لعبي. كل ثانية أو نحو ذلك، وقطرات معدل الإطار، ويمكنك ان ترى التأتأة التي تظهر على الشاشة. وهي ليست تباطؤ كبير، ولكن من الواضح وضوحا وتعطيل لهذه اللعبة. لا تلعب مقطوعة موسيقية مع AVAudioPlayer يظهر أي تباطؤ على الإطلاق.

وكيف يمكن منع هذا من الحدوث؟

وشكرا لكم.

وفلوريان

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

المحلول

لتكون مرجعا في المستقبل، وهنا هو الحل:

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

نصائح أخرى

و MP3 تنسيق صوت / مضغوط المشفرة. يمكنك محاولة إما للحد من معدل أخذ العينات (لistance، بدلا من 128 كيلو بايت / ثانية محاولة 64 كيلو بايت / ثانية) أو التحول إلى شكل غير المشفرة مثل PCM الخطية. السلبيات هي: أقل جودة الصوت في الحالة الأولى، وارتفاع حجم ملف في هذا الأخير. ولكن هذا يمكن أن تساعد في تحسين الأداء العام للتطبيق.

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