ما هي واجهة برمجة التطبيقات التي يجب أن أستخدمها لتشغيل الصوت على Windows؟ [مغلق

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

  •  26-09-2019
  •  | 
  •  

سؤال

هناك العديد من طرق لعب الأصوات على النوافذ. ما هي الاختلافات والمزايا والتنسيق لكل طريقة؟

أعلم أن هناك 5 طرق على الأقل:

  1. 1991 winmm.dll/mmsys.dll playsound
  2. 1995 MCIWND (كما اقترحت Casablanca)
  3. 1996 صوت مباشر
  4. 1998 الموجة
  5. 1999 أسيو
  6. 1999 Windows Media Player Control Control؟
  7. 2005 واسابي (الذي يستخدمه Xaudio2 - كما اقترحه Han)
  8. 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 ومخصصة لإنشاء الصوت كجزء من ألعاب الفيديو) سيكون هو الطريق اذهب.

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