كثيرا ما يستخدم البعض منا كائنات مثل ميديا بليير ويصمم عليها برامج رائعة لتشغيل الصوت والصورة , ولكنة يفاجئ بعدم وجود تابع لضبط حجم الصوت في الكائن ميديا بليير ,,, فما هو الحل هل يذهب كل التعب سدى لعدم وجود ميزة بسيطة مثل ضبط الصوت ؟؟؟؟
وفي حال لم نكن نستخدم ميديا بليير , ماهي الطريقة أيضا لضبط حجم الصوت الصادر من الجهاز :
.....
في الحقيقة سبب عدم وجود تابع خاص لضبط حجم الصوت في ديلفي لإن نظام التشغيل هو المسؤل عن ذلك وليست لغة البرمجة . وحتى لغات البرمجة التي تحتوي كائنات مضمن فيها توابع لضبط الصوت . تستمد هذه التوابع فعليا من النظام وليس منها ولكن تبقى هذة التوابع عرضة لتسبيب المشاكل في حال حدثت تغييرات جذرية على نظام التشغيل .
كيف نقوم بذلك :
في الحقيقة الموضوع بغاية السهولة . وهو عبارة عن سطر واحد فقط ولكننا سوف نستمد التابع من النظام لذلك لا بد من اضافة الوحدة mmsys قبل كتابة التابع
1- أضف الوحدة MMSys إلى مجموعة الوحدات التي يستخدمها برنامجك . "أعلى الشفرة بعد عبارة Uses "
2- استخدم التابع waveOutSetVolume في أي مكان من الشفرة تريدة
مثال : (waveOutSetVolume(0,$FFFFFFFF سوف يرفع حجم الصوت إلى الأخير
القيم ممتدة من $00000000 حتى $FFFFFFFF
ملاحظة هذا التابع يضبط حجم صوت الجهاز وليس فقط برنامجنا لذلك يمكننا استخدامة مع برامج أخرى ...
ملف توضيحي مرفق مع الشفرة :
الحجم 203 كيلو بايت
مضغوط باستخدام Winzip
قم بتشغيل أي برنامج صوتي مثل JetAudio WinAmp Mediaplayer أو أي برنامج اخر . ثم تحكم بالصوت من برنامجنا المستقل .