مكونات الصوت القديمة لنظام التشغيل ويندوز
تصف هذه المقالة واجهات برمجة التطبيقات الصوتية والمكونات في نظام التشغيل مايكروسوفت ويندوز التي أصبحت الآن قديمة أو مهملة.
ملحقات الوسائط المتعددة (MME)
كانت واجهة برمجة تطبيقات MME، أو واجهة برمجة تطبيقات الوسائط المتعددة لنظام ويندوز (المعروفة أيضًا باسم WinMM )، أول واجهة برمجة تطبيقات صوتية عالمية وموحدة لنظام ويندوز. تستخدم أحداث الصوت الموجية التي يتم تشغيلها في ويندوز (حتى ويندوز XP ) وعمليات الإدخال/الإخراج MIDI واجهة MME. تمثل الأجهزة المدرجة في لوحة التحكم "الوسائط المتعددة/الأصوات" واجهة برمجة تطبيقات MME الخاصة ببرنامج تشغيل بطاقة الصوت .
تم إصدار ملحقات الوسائط المتعددة ( واجهات WaveIn/WaveOut ) في خريف عام 1991 لدعم بطاقات الصوت ، بالإضافة إلى محركات أقراص CD-ROM ، التي كانت آنذاك متوفرة بشكل متزايد. وتم توزيع هذه الملحقات على مصنعي المعدات الأصلية (OEMs) ، وخاصة مصنعي محركات أقراص CD-ROM وبطاقات الصوت، حيث أضافت دعمًا أساسيًا للوسائط المتعددة لإدخال وإخراج الصوت، بالإضافة إلى تطبيق لتشغيل الصوت من الأقراص المدمجة ، إلى نظام التشغيل Windows 3.0. لم تكن الميزات الجديدة لملحقات الوسائط المتعددة متاحة في الوضع الحقيقي لنظام Windows 3.0، بل فقط في الوضع القياسي والوضع المحسّن 386. لاحقًا، تم دمج العديد من هذه الميزات في نظام Windows 3.1x . وقد طورت مايكروسوفت مواصفات بطاقة الصوت الخاصة بنظام Windows Sound System لتكملة هذه الملحقات.
في نظامي التشغيل ويندوز 95/ME، يفتقر MME إلى إمكانية دمج عدة مسارات صوتية أثناء التشغيل ومشاركة الأجهزة، لذا لا يمكن عرض سوى مسار صوتي واحد في كل مرة. لكن بعض برامج تشغيل بطاقات الصوت قادرة على محاكاة أكثر من جهاز MME واحد (أو دعم أكثر من عميل بث واحد)، ما يسمح لها بالعمل مع MME أيضًا. بدءًا من ويندوز 2000، يدعم MME مشاركة أجهزة التشغيل (الوصول متعدد العملاء) ويمكنه دمج مسارات التشغيل معًا. بدءًا من ويندوز XP، بدأ MME بدعم مشاركة أجهزة التسجيل.
في الإصدارات السابقة من ويندوز، كان MME يدعم تسجيل قناتين كحد أقصى، وعمق بت صوتي 16 بت، ومعدلات أخذ عينات تصل إلى 44100 عينة في الثانية، حيث يتم مزج جميع الملفات الصوتية وأخذ عينات منها بمعدل 44100 عينة في الثانية. بدءًا من ويندوز 2000، يدعم MME ما يصل إلى 384000 عينة في الثانية، وما يصل إلى 8 قنوات، وما يصل إلى 32 بت لكل عينة.
قبل نظام التشغيل ويندوز إكس بي، كان عدد واجهات أجهزة MME/WinMM ( waveIn ، و waveOut ، وmidiIn، وmidiOut، وmixer، وaux) محدودًا بـ 10. وقد تم رفع هذا الحد من 10 إلى 32 في نظام التشغيل ويندوز إكس بي. [ 1 ] [ 2 ]
يقتصر طول اسم الجهاز في MME على 31 حرفًا، لذا قد تظهر أسماء الأجهزة الطويلة جزئيًا فقط.
مشاكل
ظهر خلل في محاكاة MME WaveIn/WaveOut في نظام التشغيل Windows Vista: عند الحاجة إلى تحويل معدل العينة، قد يظهر تشويش مسموع، كما هو الحال عند تشغيل الصوت في متصفح ويب يستخدم واجهات برمجة التطبيقات هذه. ويعود ذلك إلى أن مُعيد التشكيل الداخلي، الذي لم يعد قابلاً للتكوين، يستخدم افتراضيًا استيفاءً خطيًا سريعًا قائمًا على الأعداد الصحيحة ، وهو أدنى وضع تحويل جودةً كان متاحًا في الإصدارات السابقة من Windows. ويمكن ضبط مُعيد التشكيل على وضع عالي الجودة عبر تحديث عاجل لنظامي التشغيل Windows 7 و Windows Server 2008 فقط. [ 3 ] [ 4 ]
مدير ضغط الصوت
مدير ضغط الصوت (ACM) هو إطار عمل وسائط متعددة لنظام ويندوز ، يُدير برامج ترميز الصوت (الضغط/فك الضغط). [ 5 ] يُمكن اعتبار ACM أيضًا مواصفات واجهة برمجة تطبيقات (API). يجب أن يتوافق برنامج الترميز مع مواصفات ACM الضمنية ليعمل مع وسائط ويندوز المتعددة. يُمكن التعرّف على ملفات ACM من خلال امتداد اسم الملف.acm . كما تستخدم ملفات ACM أنواع ملفات متوافقة مع RIFF، مثل WAV أو AVI ، كغلاف لتخزين بيانات الصوت المُشفّرة بواسطة أي برنامج ترميز صوت يدعمه ACM.
يُعتبر ACM إطار عمل/واجهة برمجة تطبيقات قديمة، وتشجع مايكروسوفت حاليًا على استخدام DirectShow على الأقل . مع ذلك، وعلى عكس ACM ومدير ضغط الفيديو (VCM) المرتبط به ، لا يوفر DirectShow أي وسيلة لترميز الملفات للمستخدمين النهائيين، بل يتطلب من المطورين إنشاء مخططات شاملة لترميز المحتوى. كما لا يدعم ACM تدفقات الصوت ذات معدل البت المتغير (VBR) ؛ لذا لا يمكن دعم برامج الترميز الأحدث مثل MPEG-4 AAC و Ogg Vorbis و FLAC وغيرها من خلال ACM عند استخدام معدلات بت متغيرة. على الرغم من أن العديد من المصادر تشير إلى عكس ذلك، إلا أن Ogg Vorbis يعمل بشكل جيد مع ACM، على سبيل المثال عند تضمينه في ملف متوافق مع RIFF (مثل ملف WAV أو AVI كما ذُكر سابقًا)، بشرط أن يتم ترميز تدفق Ogg Vorbis بمعدل بت ثابت.
يأتي نظام التشغيل ويندوز مزودًا بعدد من برامج الترميز ACM المثبتة مسبقًا. للاطلاع على قائمة بهذه البرامج، راجع ملف WAV § مقارنة أنظمة الترميز .
يتم تحديد برامج الترميز ACM بواسطة رمز مكون من بايتين (TwoCC) يتم تخصيصه بواسطة Microsoft.
مكتبات الصوت DirectX
KMixer
KMixer (kmixer.sys) هو برنامج تشغيل Kernel Audio Mixer ، وهو جزء من WDM Audio في Windows 98 إلى Windows XP والذي يتعامل مع مزج مخازن الصوت المتعددة في مخرج واحد.
المهام التي يؤديها برنامج KMixer.sys:
- مزج عدة تدفقات صوتية PCM
- تحويل معدل العينة
- تكوين مكبرات الصوت
- عمق بت الصوت وتحويل قناة الصوت
- التحكم في مستوى الصوت
في أنظمة التشغيل ويندوز 98 وويندوز 2000 وويندوز Me، يبلغ الحد الأقصى لمعدل أخذ العينات في برنامج KMixer 96 كيلوهرتز. أما في ويندوز XP SP1 والإصدارات الأحدث، فيدعم KMixer معدل أخذ عينات صوتية يصل إلى 192 كيلوهرتز. [ 6 ] [ 7 ] [ 8 ] ويعتمد معدل إعادة أخذ العينات الفعلي في KMixer بشكل كبير على برامج تشغيل الصوت وأجهزة الصوت؛ وفي وقت لاحق، أتاحت واجهة برمجة تطبيقات WASAPI إمكانية تغيير معدل إعادة أخذ العينات.
مشاكل
صُمم برنامج KMixer لمساعدة التطبيقات من خلال إعفائها من الحاجة إلى مزج مسارات الصوت، خاصةً على بطاقات الصوت منخفضة الجودة التي لا تدعم مسارات صوت متعددة. ومع ذلك، فقد تسبب في بعض المشاكل الكبيرة.
أولًا، يبلغ زمن استجابة KMixer حوالي 30 مللي ثانية [ 9 ] ولا يمكن تقليله، لأن هذا المكون يقع مباشرةً فوق برنامج تشغيل الصوت من فئة المنفذ، لذا فإن جميع تدفقات الصوت، بما في ذلك تلك الصادرة عن DirectSound (باستثناء حالات المزج باستخدام الأجهزة ) وWinMM، تمر عبر مُخَلِّط النواة. [ 10 ] إذا كان جهاز الصوت يدعم المزج باستخدام الأجهزة (المعروف أيضًا باسم التخزين المؤقت للأجهزة أو تسريع DirectSound باستخدام الأجهزة)، فإن DirectSound يُخزِّن البيانات مؤقتًا مباشرةً إلى جهاز العرض. [ 11 ] وبالتالي، إذا كانت تدفقات DirectSound تستخدم المزج باستخدام الأجهزة ، فسيتم تجاوز KMixer. [ 12 ]
في الإصدارات السابقة، مثل الإصدار الأصلي من ويندوز 98، كان برنامج KMixer يحاول دمج جميع تنسيقات البيانات التي تمر عبره، حتى تلك التي لا يدعمها. وقد تسبب ذلك في مشاكل عديدة مع مشغلات الوسائط التي حاولت تمرير تدفقات الصوت المحيطي المشفرة بـ AC3 عبر مخرج S/PDIF لبطاقة الصوت إلى جهاز استقبال سينمائي منزلي خارجي . تم تصحيح هذه المشكلة في ويندوز Me ، ووُفرت كتحديث عاجل لويندوز 98 الإصدار الثاني وويندوز 2000 SP2. [ 13 ] بدءًا من ويندوز Me، تدعم واجهات برمجة التطبيقات waveOut وDirectSound وDirectShow تنسيقات غير PCM مثل AC-3 أو WMA عبر S/PDIF، وتنتقل البيانات غير PCM مباشرةً إلى برنامج التشغيل بدلاً من المرور عبر KMixer.
تم أيضًا تقديم واجهة برمجة تطبيقات جديدة لوضع النواة، وهي Direct Kernel Streaming ، في نظام التشغيل Windows 98 من أجل تجاوز KMixer وتجنب المشاكل المرتبطة به.
لا يُغيّر برنامج KMixer الصوت في معظم الحالات. [ 6 ] كما توجد طرق عديدة لتجاوز KMixer دون الحاجة إلى إضافة مُلحق للوصول إلى DirectSound أو ASIO أو Direct Kernel Streaming أو WASAPI . في نظام التشغيل Windows XP، على سبيل المثال، يُعد استخدام DirectSound (الذي يستخدمه برنامج Winamp افتراضيًا) مع مُخالِط صوت خارجي طريقةً لتجاوز KMixer؛ وقد تستخدم برامج أخرى، مثل ألعاب ملء الشاشة، هذه الطريقة أيضًا. [ 9 ]
تمت إزالة KMixer في نظام التشغيل Windows Vista . واستُبدل بمحرك الصوت WASAPI (واجهة برمجة تطبيقات جلسة الصوت في Windows) الذي يعمل في وضع المستخدم، وهو جزء من بنية الصوت المُحسّنة . يمكن لمحرك الصوت العمل في الوضع المشترك أو الوضع الحصري . في الوضع المشترك، يستمر المزج. يُرسل صوت PCM المُمزوج مسبقًا إلى برنامج التشغيل بتنسيق واحد (من حيث معدل العينة وعمق البت وعدد القنوات) يمكن ضبطه من لوحة تحكم الصوت. يتجاوز الوضع الحصري لـ WASAPI المُزج، كما هو الحال عند استخدام واجهات برمجة تطبيقات صوتية خارجية مثل OpenAL أو ASIO ، والتي لا تزال تتمتع بوصول مباشر إلى الجهاز. [ 14 ]
بث النواة
تقنية بث النواة أو البث المباشر عبر النواة (Direct KS) هي تقنية تدعم معالجة البيانات المتدفقة في وضع النواة . تُمكّن هذه التقنية من بث البيانات بكفاءة عالية في الوقت الفعلي لأجهزة الوسائط المتعددة مثل بطاقات الصوت وبطاقات موالف التلفزيون . يسمح بث النواة لبرنامج تشغيل الجهاز بإنشاء مرشحات ودبابيس مشابهة لتقنية DirectShow في وضع النواة ، مما يوفر الوصول إلى المكونات المادية، ويقلل زمن الاستجابة ، مع إمكانية استخدامها ضمن مخطط مرشحات DirectShow .
تم تقديم تقنية بث الصوت عبر النواة في نظام التشغيل ويندوز 98. عندما تستخدم بطاقة الصوت برنامج تشغيل مخصصًا للعمل مع برنامج تشغيل فئة المنفذ PortCls.sys المُقدم من النظام ، أو تُنفذ برنامج تشغيل مصغرًا للعمل مع برنامج تشغيل فئة البث، يُمكن للتطبيقات تجاوز KMixer تمامًا واستخدام واجهات بث الصوت عبر النواة للتفاعل مباشرةً مع برنامج تشغيل الصوت وتقليل زمن الاستجابة. يتضمن ويندوز 98 أول برنامج تشغيل لبث الصوت عبر النواة، وهو Stream.sys. وفي ويندوز XP، قدمت مايكروسوفت برنامج تشغيل مُحسّنًا آخر لفئة بث الصوت عبر النواة، وهو AVStream.
تدعم مشغلات الموسيقى مثل JRiver Media Center وJPLAY و foobar2000 وAudirvana Studio و Winamp تقنية البث عبر النواة . كما تستخدم بعض ألعاب ملء الشاشة هذه التقنية لتجاوز KMixer. بالمقارنة مع طريقة "WaveOut" التقليدية في نظام التشغيل Microsoft Windows ، تتطلب تقنية البث عبر النواة وقتًا أقل من وحدة المعالجة المركزية ، ولكن على حساب تجاوز KMixer والتحكم في مستوى الصوت في Windows. ولا تسمح هذه التقنية بمشاركة الأجهزة إلا إذا كان برنامج تشغيل الصوت في وضع النواة يدعم عملاء متعددين.
قبل نظام التشغيل ويندوز فيستا، كان بث النواة (Kernel Streaming) يوفر بروتوكول اتصال واحد فقط بين العميل وبرنامج التشغيل، يعتمد على سلسلة من المخازن المؤقتة، كما هو الحال في MME. بدءًا من فيستا، تم تقديم بروتوكول الصوت في الوقت الحقيقي ( RT Audio ، والذي لا ينبغي الخلط بينه وبين برنامج ترميز RTAudio)، ويعتمد على مخزن مؤقت دائري واحد . يتم تنفيذ بروتوكول RT Audio بواسطة برنامج تشغيل منفذ WaveRT في ملف portcls.sys. في فيستا والإصدارات اللاحقة، يدعم النظام الفرعي للصوت كلا البروتوكولين، مما يتيح له التفاعل مع برامج تشغيل الصوت القديمة والحديثة. مع ذلك، فإن معظم تطبيقات الصوت التي تستخدم بث النواة تدعم بروتوكولًا واحدًا فقط (قديم في أغلب الأحيان)، وبالتالي لا يمكنها التواصل إلا مع نوع واحد من برامج تشغيل الصوت.
انظر أيضاً
مراجع
- ↑ أساسيات واجهة برمجة تطبيقات برنامج تشغيل الصوت في ويندوز
- ↑ حدود واجهة الجهاز في نظام التشغيل ويندوز 2000
- ↑ "سياسة تحويل معدل عينة تدفقات الصوت (برامج تشغيل ويندوز)" . مركز المطورين - الأجهزة . مايكروسوفت . تم الاسترجاع في 17 يناير 2012 .
- ↑ "تشوهات في نظام التشغيل ويندوز 7 بسبب تحويل معدل العينة" . موضوع نقاش في منتديات تطوير سطح مكتب ويندوز . تم الاطلاع عليه بتاريخ 17 يناير 2012 .
- ↑ "مدير ضغط الصوت" . مايكروسوفت . 30 مايو 2018.
- 1 2 "سياسة مزج تدفقات الصوت وتحديد معدل عينة الإخراج" . MSDN. مؤرشف من الأصل بتاريخ 21-10-2012 . تم الاطلاع عليه بتاريخ 18-11-2025 .
- ↑ "Kmixer" . مؤرشف من الأصل بتاريخ 14 أغسطس 2013. تم الاطلاع عليه بتاريخ 18 نوفمبر 2025 .
- ↑ "ما هو "التشغيل المثالي للبتات"، وماذا عليّ أن أفعل لتشغيل الملفات الصوتية بهذه الدقة؟" . مؤرشف من الأصل بتاريخ 16-09-2016 . تم الاطلاع عليه بتاريخ 18-11-2025 .
- 1 2 "زمن استجابة KMixer" . MSDN . تم الاطلاع عليه بتاريخ 23-11-2010 .
- ↑ "CakeWalk - Windows Pro Audio Roundtable" . مؤرشف من الأصل بتاريخ 31 أغسطس 2011. تم الاطلاع عليه بتاريخ 15 سبتمبر 2011 .
- ↑ نماذج برامج تشغيل DirectSound
- ↑ نظرة عامة على تسريع الأجهزة بتقنية DirectSound
- ↑ تنسيقات الموجات غير PCM وبرامج تشغيل الصوت WDM
- ↑ "مكوّن Winamp OpenAL الإضافي للإخراج" . تم الاطلاع عليه بتاريخ 23-11-2010 .
روابط خارجية
روابط معطلة
- مكونات بث النواة
- واجهة برمجة تطبيقات MME (WinMM)
- مكونات بث النواة (موثقة لإعادة التنفيذ في ReactOS )
- بنى مكونات البرامج الإضافية للموسيقى
- صوت ويندوز
