التعامل مع الملفات الصوتية ........دردشة برمجية - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم مقالات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=184) +--- الموضوع : التعامل مع الملفات الصوتية ........دردشة برمجية (/showthread.php?tid=4853) |
التعامل مع الملفات الصوتية ........دردشة برمجية - RaggiTech - 02-10-12 كاتب الموضوع : supersmart2007
بسم الله الرحمن الرحيمالسلام عليكم ورحمة الله وبركاته انا عضو جديد قديم بمعنى انا كنت مشترك فى المنتدى منذ سنين ولكنى كنت سلبى لا اشارك بمعلومة ولا حتى سؤال كنت اقرأ فقط ولكن من الان قررت ان اشترك فى المنتدى حساب باسم جديد ليكون ميلاد عضو جديد فهل من مرحب؟ وقررت بالا تكون اول مشاركة لى سؤاللا ولكن تكون شرحا لكى اُثبت حسن نيتى واستعدادى لكى اكون ايجابيا الدرس بمجهودى الخاص واتمنى ان يكون الموضوع مفيد الشرح سيكون بواسطة فيجوال بيسك دوت نت 2005 ومع التعديل البسيط يمكن الاستفادة منه فى اللغات البرمجية الاخرى سيتم مناقشة التالى 1- كيفية تشغيل الملفات الصوتية لنظام التشغيل 2- كيفية تشغيل الملفات الصوتية من نوع ويف 3- كيفية تشغيل انواع اكثر من الملفات الصوتية مثل: wav,mp3,wma,......etc 4-تصميم مشغل صوتيات للتدريب على
وهيكون صورة برنامجنا النهائى كالتالى: نبتدى بسم الله 1-كيفية تشغيل الملفات الصوتية لنظام التشغيل: ضع button واكتب سطر واحد من السطور التالية بداخله: كود : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ============================================= 2- كيفية تشغيل الملفات الصوتية من نوع ويف قم باضافة button واكتب به التالى: كود : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click وتم تحديد مكان الملف الصوتى المراد تشغيله وبعد ذلك يتم استخدام سطر واحد فقط من الثلاث اسطر التالية لتشغيل الملف الصوتى والاختلافات بينهم كالتالى sp.Play لتشغيل الملف الصوتى وتنفيذ اى كود برمجى بعده بدون مشاكل sp.PlayLooping لتشغيل الملف الصوتى واعادة تشغيله بصفة متكررة كلما انتها يبدأ من جديد sp.PlaySync يتم تشغيل الملف الصوتى ولا يتم تنفيذ اى كود بعده الا بعد انتهاء تشغيل الملف الصوتى كمثال لفهم ذلك: كود : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click كود : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click sp.Stop ============================================= جارى اعداد الجزء المتبقى من الدرس التعامل مع الملفات الصوتية ........دردشة برمجية - RaggiTech - 02-10-12 الجزء الثانى من الشرح ابتسم فأنت مبرمج فيجوال بيسك دوت نت 2005 لكى تقوم بما سبق فى اسرع وقت وفقط على فيجوال بيسك دوت نت 2005 لتشغيل صوت من اصوات نظام التشغيل ضع سطر واحد من الكود التالى: كود : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click كود : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click فى السطر التانى يتم تشغيل الملف الصوتى ولا يوقف تنفيذ الكود التالى له فى السطر التالت يتم تشغيل الملف باستمرار فى السطر الرابع يتم تشغيل الملف الصوتى ولا يتم تشغيل الكود التالى الا بعد انتهاء الملف الصوت ولفهم ذلك ارجع للمثال المطروح فى لجزء الاول من الشرح وفى السطر الأخير تم ايقاف الصوت ============================================= جارى إعداد الجزء المتبقى من الدرس التعامل مع الملفات الصوتية ........دردشة برمجية - RaggiTech - 02-10-12 الجزء الثالث من الشرح ملحوظه هامة:الشرح التالى يمكن تطبيقه فى فيجوال بيسك 6 مع التغيير الطفيف فى الكود 3-تشغيل الانواع الاخرى لتشغيل انواع كثيرة من الملفات يوجد طرق كثيرة وسيتم شرح اشهر طريقة وهى استخدام اداة ويندوز ميديا بلاير Windows media player وهى اداة غير موجودة فى الادوات القياسية فى فيجوال بيسك ولإضافتها اتبع الصورة المتحركة التالية انتظر حتى يتم تحميل الصورة وعرضها المرة الاولى ببطء بعد ذلك ستعمل بدون بطء http://img164.imageshack.us/img164/3843/addwmp3xe4.gif اضف اداة ويندوز ميديا بلاير وغير اسمها الى Wmp1 ولتشغيل ملف صوتى نستخدم خاصية url=c:\sample.mp3 او برمجيا كود : wmp1.URL = "c:\sample.mp3" للتشغيل والتوقيف والتوقيف المؤقت والتقديم والتأخير استخدم سطر واحد من التالى: كود : wmp1.Ctlcontrols.play() ولمعرفة مكان تشغيل الاغنية الان بالثانية كود : MsgBox(wmp1.Ctlcontrols.currentPosition) كود : wmp1.Ctlcontrols.currentPosition=50 كود : MsgBox(wmp1.settings.volume) كود : wmp1.settings.mute=True كمثال لتشغيل السماعة اليسرى: كود : wmp1.settings.balance = -100 كود : MsgBox(wmp1.currentMedia.name) كود : MsgBox(wmp1.currentMedia.duration) جارى إعداد باقى الشرح التعامل مع الملفات الصوتية ........دردشة برمجية - RaggiTech - 02-10-12 الجزء الرابع من الشرح 4-تصميم مشغل صوتيات سنقوم بعمل تطبيق الان للتدريب على ما سبق قم بانشاء مشروع جديد اسمه Mp3_player وضيف اداة ويندوز ميديا بلاير كما تعلمت سابقا وسميها Wmp1 وغير خاصية visible لـ false عشان احنا مش عايزين المستخدم يشوفها وضيف خمسة button وسميهم-المقصود بسميهم يعنى الخاصية Name Bplay Bstop Bbause Bforward Bbackward وفى الخاصية text حط اللى انت عايزه انا هنا استخدمت > [] || >> << وحط الكود التالى فى الزراير بالترتيب: فى زرار التشغيل كود : wmp1.Ctlcontrols.play() لكن لو هى شغالة اصلا مش هيعمل حاجه لانها شغالة اصلا بس فى وين امب لو الاغنية شغالة وضغطت على الزرار هيبدأها من جديد ولأننا ننشد الواقعية قدر الامكان سنجرى التعديل التالى كود : If wmp1.playState = WMPLib.WMPPlayState.wmppsPlaying Then ----------------------- زرار التوقف كود : wmp1.Ctlcontrols.stop() كود : wmp1.Ctlcontrols.pause() هو واقف اصلا وليكون اكثر واقعية نجرى التعديل التالى كود : If wmp1.playState = WMPLib.WMPPlayState.wmppsPlaying Then -------------- تقديم الاغنية كود : wmp1.Ctlcontrols.fastForward() كود : wmp1.Ctlcontrols.fastReverse() -------------------------- للتحكم فى علو الصوت اضف اداة اسمها Trackbar دور عليها كويس هى موجودة فى الادوات وغير خصائصها الى Name=tvolume Tickstyle=none Minimum=0 Maximum=100 Value=50 الكلام ده معناه انى خليت اعلى حد للصوت 100 واقل حد صفر والقيمة المختارة 50 واضف اداة اخرى لتوازن صوت السماعات وغير الخصائص Name=tbalance Tickstyle=none Minimum=-100 Maximum=100 Value=0 واخترنا صفر لأنه فى المنتصف بين 100 و-100 واضف اداة تالته للتحكم فى مكان تشغيل الاغنية وعرض تقدم الاغنية وغير الخصائص الاتية Name=tposition Tickstyle=none Minimum=0 Maximum=100 Value=0 وهنا مش مهم تحديد اعلى قيمة بدقة لاننا هنعدلها برمجيا وضيف تلاته label وغير اساميهم الى Lname Lposition Lduration فاضل زرار واحد ضيفه عشان نفتح بيه الاغنية اللى احنا عايزينها وسميه Bopen وعشان ندور على اغنية ضيف اداة Openfiledialog دور عليها كويس هتلاقيها وغير اسمها الى Ofd1 ولكى نجعل المستخدم لا يختار كافة انواع الملفات كان يختار مثلا ملفات نصية فسنجبره على اختيار انواع معينه وفى هذا التطبيق سنجبره على اختيار ملفات Mp3 وذلك عن طريق جعل خاصية Filter= mp3 files|*.mp3 ========================================== ونضيف اداة timer لتتبع تقدم تشغيل الاغنية ونغير الخصائص التالية Enabled=true Interval=1000 يعنى كل ثانية لان الثانية بالف ============================================ كده احنا اضفنا كل الادوات اللى احنا عايزينها اعد ترتيب الادوات بالشكل الذى يحلو لك وغير فى خصائصهم وخصائص البرنامج وشكله كما تريد ونحن هنا سنتبع الشكل التالى: فى زرار فتح الاغنية اكتب الكود التالى: كود : If ofd1.ShowDialog = Windows.Forms.DialogResult.Cancel Then Cancel ما تعملش حاجه ولو اختار اغنية شغلها ============================== للتحكم فى درجة علو الصوت اضغط على الاداة مرتين وكتب الكود التالى كود : wmp1.settings.volume = Tvolume.Value كود : wmp1.settings.balance = Tbalance.Value كود : wmp1.Ctlcontrols.currentPosition = Tposition.Value نعرض اسم الاغنية ومدتها ونغير طول الاداة بتاعت التحكم فى تقدم الاغنية بحيث تكون قد طول الاغنية الكلام ده المفروض يتكتب فى كود زرار فتح الاغنية لكن الافضل وعشان نتدرب على حاجه جديده اضغط مرتين على اداة الميديا بلاير واختار الحدث wmp1_OpenStateChange واكتب الكود التالى كود : Private Sub wmp1_OpenStateChange(ByVal sender As Object, ByVal اعرضلى اسم الاغنية ومدتها وخلى اعلى قيمة فى شريط التحكم بالاغنية تشاوى مدة الاغنية عشان المستخدم ما يقدمش لاكتر من طول الاغنية فيه مشكله بسيطة مدة الاغنية هتتعرض بعدد الثوانى يعنى 500 ثانية مثلا واحنا عايزينها بالدقايق والثوانى نجرى التعديل التالى كود : Private Sub wmp1_OpenStateChange(ByVal sender As Object, ByVal ولو اكتر اقسم على 60 واعرض ناتج القسم بجانب باقى القسمة واستخدمت متغير من النوع انتيجر للتخلص من الملليثانية لان بعض الاغانى تكون 5دقائق مثلا و 2 مللى ثانية وفى التايمر اكتب الكود التالى كود : Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e وفى النص الذى يعرض تقدم الاغنية لو اقل من 60 ثانية الخ الخ الخ كما فعلنا بالسابق مع مدة الاغنية ========================================== فى النهاية يجب ان انوه انك اذا اردت توزيع برنامجك على اصدقائك يجب ان تضمن الملفات الاتية لتضمن عمله بدون مشاكل wmp.dll AxInterop.WMPLib.dll Interop.WMPLib.dll واذا كنت تعرف عمل تسطيب لبرنامجك فلا تقلق لانك يمكنك تضمين الملفات مع برنامجك بكل بساطة =============================== ملحوظه تم ارفاق المشروع لسهولة الفهم وتم ارفاقه مرة اخرى بالشكل التالى ومعلش الزراير كان المفروض تتظبط احسن من كده بس انا عملته على السريع ==================================== كلمة أخيرة لم تنته طرق تشغيل الملفات الصوتية ولكن دورى انتهى فى الشرح لأن عملية الشرح بالتفصيل دى مرهقة جدا وانا الحمد لله شرحت اللى يفيدكم بنسبة 90 فى المية هناك طرق اخرى مثل استخدام دوال الـ API استخدام مكتبات الدايركت اكس وغيرها وغيرها فمن يريد تكملة الدرس وكتابة طرق جديده فأهلا وسهلا به =================================== لقد قمت بوسعى بتبسيط الشرح قدر الامكان وتغطية الموضوع قدر الامكان واستخدام طريقة التفاعل وكتابة الكود واعادة تعديله كان من الممكن كتابة الكود النهائى مرة واحده ولكنى فضلت ان تجرب الكود وتفكر لماذا يجب التعديل فيه ثم تعديله فيتم تثبيت المعلومة هذا اول موضوع لى فى المنتدى اتمنى ان تقبلونى عضوا بينكم اتمنى ان يكون الموضوع مفيد واتمنى ان اكون وفقت فى الشرح وتكون بداية خير ان شاء الله وانتظر ارائكم البناءة وملاحظاتكم واستفساراتكم واقتراحاتكم لتنزيل الكود اضغط الرابط التالى http://www.4shared.com/file/29463167...P3_PLAYER.html والى اللقاء فى موضوع جديد ان شاء الله هشام حسن التعامل مع الملفات الصوتية ........دردشة برمجية - مبرمج بلا حدود - 12-07-13 الله يجعله في موازين حسناتك اللهم امين للاسف الملف محذوف ممكن احد من الي قامو بتنزيلة يرفعونه وياريت على سيرفر المنتدى رعاكم الله RE: التعامل مع الملفات الصوتية ........دردشة برمجية - spordo - 16-11-14 شكرا جزيلا ساعدتني كثير بمشروعي حتى فهمت منك طرق استخدام الادوات RE: التعامل مع الملفات الصوتية ........دردشة برمجية - sniperjawadino - 19-12-14 عمل متعوب عليه كثيير جزاك الله خير RE: التعامل مع الملفات الصوتية ........دردشة برمجية - sayed fox - 26-12-16 من فضلك جدد رابط الملف وشكراً RE: التعامل مع الملفات الصوتية ........دردشة برمجية - ahmed4240 - 28-11-17 بسم الله الرحمن الرحيم الحمد لله والصلاة والسلام على رسول الله صلى الله عليه وسلم وبعد جزاك الله كل غير ، حفظت الصفحة عندي ، ثم فقدتها ، وبحثت في النت ، فكانت صفحتك اشمل في لم الموضوع كله ، والحمد لله ان عثرت عليها مرة اخرى ، فجزاك الله خيرا |