سؤال

وماذا SDL_Mixer لا تلعب الموسيقى لبعض ملفات MP3؟

وأنا باستخدام SDL_Mixer لتشغيل الموسيقى في تطبيق أنا خلق. على بعض الأغاني (ألبومات كاملة في الواقع)، والموسيقى وببساطة لن يلعب من دون العودة أية أخطاء. الأحمال البيانات الموسيقى بنجاح باستخدام Mix_LoadMUS وعند تنفيذ Mix_PlayMusic مع تلك البيانات، والغريب ما يكفي من العوائد 0 من أجل نجاح ولكن لا تلعب أي الموسيقى. لقد حاولت أيضا قراءة Mix_GetError () وSDL_GetError () (وأعتقد أنهم نفسه) لمعرفة ما اذا كان يثير خطأ، ولكن لا يوجد مثل هذا الحظ.

وسؤالي هو، ما أسباب أخرى سوف SDL_mixer لن تكون قادرة على لعب MP3 معينة؟

وأنا أعلم أن لMP3 وظيفية لأنني لا يمكن اللعب بها في مشغلات الموسيقى الأخرى. وأنا أعلم أيضا عن حقيقة أنهم لا يلعبون (على عكس ربما حجم يجري تحويلها لأسفل) منذ Mix_PlayingMusic بإرجاع 0.

وشكرا للجميع!

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

المحلول

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

نصائح أخرى

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

وكنت توصي فتح المخالف (أو كل) في MP3 في محرر عينة الصوت، مثل جرأة واعادة تصدير وmp3. قد تفقد فقط قليلا من نوعية منذ ضغط MP3 هو من قبل انها طبيعة الضياع، ولكن من المرجح أن يحل المشكلة التشغيل.

وكان لي نفس المشكلة، واعادة تصدير وملفات MP3 مع الجرأة لم تساعد، ولكن عن طريق القيام بشيء من هذا القبيل:     إذا (Mix_PlayingMusic () == 0)         Mix_PlayMusic () في حلقة الحدث، لعبت الموسيقى بعد 2 أو 3 محاولات (الذي كان مختلفا في كل مرة ركضت البرنامج). كان حل آخر لتحويل الموسيقى إلى ملفات .ogg.

scroll top