ما هي واجهة برمجة التطبيقات التي يجب أن أستخدمها لتشغيل الصوت على Windows؟ [مغلق
-
26-09-2019 - |
سؤال
هناك العديد من طرق لعب الأصوات على النوافذ. ما هي الاختلافات والمزايا والتنسيق لكل طريقة؟
أعلم أن هناك 5 طرق على الأقل:
- 1991 winmm.dll/mmsys.dll playsound
- 1995 MCIWND (كما اقترحت Casablanca)
- 1996 صوت مباشر
- 1998 الموجة
- 1999 أسيو
- 1999 Windows Media Player Control Control؟
- 2005 واسابي (الذي يستخدمه Xaudio2 - كما اقترحه Han)
- 2007 Xaudio2
المحلول
يعتمد حقًا على ما تريد القيام به. بالنسبة للسيناريوهات الأكثر شيوعًا ، وجدت أن McIwnd تعمل الوظائف بشكل جيد: إنها سهلة الاستخدام حقًا ويمكنها تشغيل أي تنسيق يتم تثبيته من أجله.
DirectSound أكثر صعوبة إلى حد ما ولكن يمنحك المزيد من التحكم في الإخراج ؛ يتيح لك إضافة مؤثرات خاصة ومحاكاة تحديد المواقع ثلاثية الأبعاد.
ال waveOut
الوظائف هي أدنى مستوى واجهات برمجة التطبيقات التي يمكنك الوصول إليها وهي نوع من السيف ذو الحدين: يمكنك التحكم في ما يخرج بالضبط إلى مكبرات الصوت ، لكنهم يقبلون فقط بيانات الموجة الخام ، مما يعني أنك مسؤول عن جميع فك التشفير والتشفير بعد المعالجة من بيانات الإدخال. PlaySound
يوفر أساسًا غلافًا لطيفًا حول هذا.
نصائح أخرى
QSound, ، ثم سوف يناسب بقية الخاص بك كيو تي التطبيق ، وسيعمل ليس فقط على Windows ولكن أيضًا على Mac OS X و Linux أيضًا. ليس من غير المألوف إيجاد واجهة برمجة تطبيقات أساسية خاصة منصة ليست ودية للغاية للمطورين ، ثم عدد لا يحصى من واجهات برمجة التطبيقات الودية التي تم بناؤها على قمة النواة. قد يكون استخدام واجهة برمجة التطبيقات الأساسية أسرع بشكل مهم ، ولكن استخدام الطبقات الموجودة أعلى واجهات برمجة التطبيقات الأساسية هذه دائمًا ما يكون أكثر ملاءمة وقابلة للصيانة ، ويحميك من التغييرات إلى قلب المستوى المنخفض.
تعديل
من وصف xaudio2:
Xaudio2 عبارة عن واجهة برمجة تطبيقات منخفضة المستوى من المستوى المنطقي لـ Microsoft Windows و Xbox 360. إنها توفر أساسًا لمعالجة الإشارات وخلط للألعاب التي تشبه أسلافها و DirectSound و Xaudio. بالنسبة لمطوري ألعاب Windows ، يعد Xaudio2 بديلًا طال انتظاره لـ DirectSound.
لذلك ، يبدو أن ذلك سيكون واجهة برمجة التطبيقات لاستخدامها إذا كنت تريد مكتبة صوتية خاصة منصة.
تحرير 2
كنت سريعًا قليلاً مع إجابتي الأولى ... حقًا ، يعتمد ذلك على ما تريد القيام به. إذا كان كل ما تريد القيام به هو تشغيل ملف صوتي ، فإن QSound هو الطريق للذهاب. ومع ذلك ، إذا كنت ترغب في مزج الصوت وإنشاء الصوت أثناء الطيران ، فإن استخدام مكتبة أكثر قدرة على الميزات مثل Xaudio2 (والتي تعد جزءًا من DirectX ومخصصة لإنشاء الصوت كجزء من ألعاب الفيديو) سيكون هو الطريق اذهب.