تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تشغيل ملف صوتي في برنامجك بالجافا ...
#1
هذا مثال بسيط عن كيفية تشغيل الملفات الصوتية في برامجنا بالجافا .. هذا المثال و امثلة اخري ان شاء الله تمهيدا للبدئ في التعامل مع عتاد الجهاز و سيكون في القسم الثاني من الدورة انشاء الله ...

اولا : تمتلك لغة الجافا عدد كبير جدا من المكتبات منها المتخصص في التعامل مع الرسوميات مثل
javax.swing و منها من يتعامل مع النصوص و الدخل و الخرج و عمليات الطباعة و الكتابة مثل java.io و منها من يتعامل مع الحزم الصوتية و المصفوفات الصوتية و ملفات الصوت و غيره و هي مكتبة javax.sound و التي تنقسم الي عدد من الحزم المكتبية الفرعية مثل :

المجموعة الاكثر اهمية و شيوعا و هي دائمة الاستخدام في مثل هذا النوع من البرامج :

كود :
javax.sound.sampled.AudioFormat;
javax.sound.sampled.AudioInputStream;
javax.sound.sampled.AudioSystem;
javax.sound.sampled.Clip;
javax.sound.sampled.DataLine;


المكتبة الاولي للتعامل مع امتداد الملف الصوتي wave ..
المكتبة الثانية تستخدم لتهيئة البرنامج لعملية ادخال الاصوات ..
المكتبة الثالثة لتهيئة نظام الصوت في الجهاز ..
المكتبة الرابعة يتم من خلالها تحميل بيانات الملف الصوتي قبل عملية القرائة ..اي تحويل الصوت علي هيئة Byte Line Code قبل القراءة ..
المكتبة الخامسة تمثل مكتبة الوظائف الصوتية (للمهئ الصوتي في الآله الافتراضية ) و هي مرتبطة دائما مع المكتبة الرابعة ..فهي تمثل جزءا من عملية قرائة مصفوفات الصوت قبل تحويلها الي خرج صوتي ...



معظم المكتبات الصوتية في الجافا :

كود :
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioFormat;  
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioPermission;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.BooleanControl;
import javax.sound.sampled.Clip;        
import javax.sound.sampled.CompoundControl;
import javax.sound.sampled.Control;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.EnumControl;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.Line;
import javax.sound.sampled.LineEvent;
import javax.sound.sampled.LineListener;
import javax.sound.sampled.LineListener;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.Mixer;
import javax.sound.sampled.Port;
import javax.sound.midi.MidiFileFormat;
import javax.sound.midi.MidiEvent;
import javax.sound.midi.MidiMessage;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.MidiUnavailableException;
import javax.sound.midi.Patch;
import javax.sound.midi.Sequence;
import javax.sound.midi.ShortMessage;
import javax.sound.midi.SoundbankResource;
import javax.sound.midi.SoundbankResource;
import javax.sound.midi.Instrument;

نحتاج ايضا في هذا البرنامج الي الاستعانة بمكتبة الادخال و الاخراج :

كود :
java.io.File;


ثانيا : نأتي الي الدالة التي سنعتمد عليها اعتمادا كبيرا في تشغيل الصوت .. و هي تضم مجموعة من التعليمات مثل getAudioInputStream و getFormat و DataLine.Info و Clip.class و AudioSystem.getLine و clip.open و clip.start ..

الدالة وهي تسمي play :

كود :
private void play()
    {
        try{      
        AudioInputStream stream = AudioSystem.getAudioInputStream(new File("C:\\Windows\\Media\\chimes.wav"));      
        AudioFormat format = stream.getFormat();      
        DataLine.Info info = new DataLine.Info(Clip.class, stream.getFormat());      
        Clip clip = (Clip) AudioSystem.getLine(info);        
         clip.open(stream);      
         clip.start();    
    } catch (Exception e)
    {      
         e.printStackTrace();    
    }  
    }

و في حدث الضغط علي زر في الجافا jButton1ActionPerformed نضع امر البدئ في التشغيل و ليس الفتح ..لان امر الفتح جاء مسبقا من خلال clip.open و ذلك يكون مخزن في زاكرة البرنامج حتي يتم استدعائه في امر بدئ تشغيل المقطع الصوتي ..

كود :
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
  play();
}


معلومة يتم وضع فواصل المسارات في الجافا هكذا "\\" و ليس "\" ..
معلومة اخري تستخدم المكتبة javax.sound.sampled مع الملفات الصوتية البسيطة مثل wave و mov ..اما الاخري javax.sound.midi تتعامل مع الملفات الاكثر تعقيدا من ناحية القرائة مثل wmv و rmvb ..

رابط تحميل المشروع :
[ATTACH]94[/ATTACH]


الملفات المرفقة
.zip   java sound.zip (الحجم : 22.43 ك ب / التحميلات : 84)
رابط قناتي على اليوتيوب :
https://www.youtube.com/user/OsamaAhmadGalal
رابط حساب الفيسبوك :

https://www.facebook.com/P.Osama.Ahmad.Galal
رابط حساب التويتر :
https://twitter.com/osamaahmadgalal
البريد الإلكتروني للتواصل :
OsamaAhmadGalal@Hotmail.Com
OsamaAhmadGalal@Yahoo.Com
OsamaAhmadGalal@Gmail.Com
رقم الموبايل :
00201122777845

الرد }}}}
تم الشكر بواسطة:
#2
شكرا لك على شؤح المكتبة لكن الايوجد مكتبة للتعامل مع ملفات الفيديو
الرد }}}}
تم الشكر بواسطة:
#3
مشكورورورورورورور على الموضوع الرائئئععع
(( نحن قوم أعزنا الله بالإسلام فمهما ابتغينا العزة بغيره أذلنا الله )) .. 











الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ربط قاعدة بيانات اوراكل بالجافا RaggiTech 0 932 07-10-12, 11:00 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم