تطبيق موسيقى iPhone: اللعب من ذاكرة التخزين المؤقت للملاحظات

StackOverflow https://stackoverflow.com/questions/1174137

سؤال

أنا أعمل على تطبيق سيعزف الملاحظات من مقياس Diatonic 12 نغمة يمتد عدة أوكتافات. سيكون هذا في الأساس مرجما خفيفا مؤقتا.

مرات أنه مع عدد الأدوات لاستخدامها.

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

هل لدى أي شخص فكرة عن كيفية جعل التخزين المؤقت لملفات .wav أكثر كفاءة في المساحة؟ الضغط هو خيار جيد، ولكن الكثير مما يمكن أن يقلل من الجودة. بالتأكيد التعديل أو التشويه على الطاير سوف تكون بالتأكيد laggy جدا. صححني إذا كنت مخطئا، ولكن لعب 200 BPM مع هذا التنفيذ لن يعمل.

إذا كان لديك خبرة مع تطبيقات الموسيقى، يرجى مشاركة نصيحتك.

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

المحلول

لا خبرة في تطبيقات الموسيقى، في حد ذاتها، لكنني استخدمت الصوت، بما في ذلك التسجيل.

على iPhone، لا تقوم عادة بتحميل الصوت بأكمله إلى ذاكرة الوصول العشوائي، بسبب قيود الحجم وسرعة القرص. باستخدام API Audioquequeue، تكتب وظيفة رد الاتصال التي تملأ المخزن المؤقت من القرص (عادة باستخدام طرق AudioFile). يمكنك تحديد أحجام المخزن المؤقت وتقليل العازلة بشكل مناسب للحفاظ على تشغيل الصوت في التطبيق الخاص بك يعمل بسلاسة.

ربما يجب أن تدرس إمكانيات الضغط، كذلك؛ يجب أن تشتري لك شيء مثل الضياع AAC تخفيض بنسبة 50٪ في حجم الملف دون خسارة في الجودة، بتكلفة زيادة كبيرة في معالجة النفقات العامة.

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

نصائح أخرى

يجب عليك ضغط ملفات .wav إلى ملفات CAIF (تنسيق الصوت الأساسية) مع ضغط IMA4. يمكن لجهاز iPhone أن يلعب مضاعفات هذه الملفات في نفس الوقت (لا يمكن تشغيل MP3 / AAC، لأنك بحاجة إلى وحدة فك ترميز الأجهزة) ..

يمكنك تحويل WAV إلى CAF مع الأمر المحطة الطرفية التالية على Mac OS X:

$ afconvert -f caff -c 1 -d ima4 loop1.wav

أيضا، إذا كنت تلعب هذه مع AvaudioPlayer (Avfountation) فلن تقلق بشأن التخزين المؤقت، كما يفعل Avaudioplayer هذا بالفعل .. للحصول على صوت أكثر تقدما، ستحتاج إلى إلقاء نظرة على خدمات الصوت (قائمة انتظار الصوت) على الرغم من ذلك ..

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