سؤال

لعبة كمبيوتر أنا صنع، أريد الواضح للعب الصوت. حتى الآن، لقد تم استخدام AudioClip لتشغيل ملفات WAV. في حين أن هذا النهج يعمل بشكل جيد، وملفات WAV تميل إلى أن تكون عملاقة. بضع ثوان من الصوت في نهاية الأمر مئات كيلوبايت. أنا واجهت مع وجود حمل اللعبة التي ل95٪ الصوت!

والخيار الواضح هنا سيكون لاستخدام MP3 أو فوربيس. بل لقد كان نجاحا محدودا مع هذا - I يمكن أن تلعب MP3 باستخدام JLayer (ولكنه يلعب في نفس الموضوع). أما بالنسبة لسطين، لقد كان الحظ لا على الإطلاق. والأسوأ من ذلك الوضع القانوني JLayer هو قليلا على الجانب مشكوك فيها.

وهكذا سؤالي هو: إلى كل من مطوري جافا وعموما الناس الذين يعرفون في الواقع شيئا عن الصوت: ماذا أفعل؟ يمكنني بطريقة أو بأخرى "خفض الدهون" خارج بلدي WAVS؟ هل هناك طريقة للعب سطين في جافا؟ هناك بعض تنسيق الصوت الآخر الذي يجب أن تستخدم بدلا من ذلك؟

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

المحلول

هل يمكن استخدام JOrbis مكتبة لتشغيل OGG الموسيقى. للعمل استخدام عينة يمكنك أن تبحث في هذه الملفات <وأ href = "http://code.google.com/p/open-ig/source/browse/#svn/trunk/open-ig/src/hu/openig/ الموسيقى "يختلط =" نوفولو noreferrer "> هنا .

وأنا أيضا جربت مع بعض ضياع ضغط الصوت، وعلى سبيل المثال كان لي صوت أحادية 16 بت. I فصل بايت العلوي والسفلي من كل عينة ووضعها بعد بعضها البعض. ثم تقدمت بطلب استبدال التفاضلي حيث يتم استبدال كل بايت من الفرق في الفترة من البايت الأخير. وتستخدم أخيرا GZIP لضغط البيانات. وكنت قادرا على تقليل حجم البيانات إلى 50-60٪ من الحجم الأصلي. للأسف هذا لم يكن كافيا حتى التفت إلى تنسيق OGG.

وشيء واحد أنا لاحظت مع الموسيقى 8 بت هو أنه إذا قمت بتغيير حجم الصوت، وتشغيل يصبح صاخبة جدا. I حل هذه المشكلة عن طريق upsampling البيانات الصوتية إلى 16 بت الحق قبل SourceDataLine.write ().

نصائح أخرى

وهذه قد تكون قديمة، ولكن يتم التعرف عليها رسميا من قبل فريق Xiph.org (الذين يحافظون سطين وفوربيس، وغيرها). http://www.vorbis.com/software/#java

ووتعالج المشكلة التي وصف من قبل واجهة مقدم الخدمة (SPI) للصوت في جاوة. والنتيجة هي أن مجرد إضافة ملفات JAR إلى CLASSPATH الخاص بك وسوف تضيف وظائف إلى الافتراضي API جافا الصوت. مما يمكن التعامل مع المزيد من تنسيقات الصوت دون تغيير التعليمات البرمجية.

وآخر مرة حاولت هذا Javazoom الناس عرضت MP3 SPI JAR العمل. الذي استند إلى JLayer التي ذكرتها.

لسطين OGG هناك الآن يبدو أيضا أن تكون مكتبة SPI. تحقق من مستندات على فوربيس SPI على Javazoom.

إذا كنت ترغب في البقاء مع شكل الرعايا ...

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

وآمل أن يساعد هذا.

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