
مقدمة إلى Java Sound API
تعد Java Sound API مجموعة أدوات قوية مصممة لتوفير دعم صوتي عبر جميع الأنظمة الأساسية. يأتي مرفقًا مع Java Development Kit (JDK) ويتيح للمطورين تشغيل الملفات الصوتية وتسجيلها ومعالجتها بتنسيقات مختلفة. في هذه المقالة ، سنركز على أساسيات تشغيل الصوت في تطبيقات Java باستخدام فئتي AudioClip و AudioSystem ، والتي تعد جزءًا من Java Sound API.
يمكن تصنيف Java Sound API إلى حزمتين أساسيتين: javax.sound. عينات و javax.sound.midi. تُستخدم الحزمة التي تم أخذ عينات منها للتعامل مع وظائف الصوت الأساسية مثل التشغيل والتسجيل وتوليف البيانات الصوتية ، بينما تم تصميم حزمة midi لإدارة التراكيب الموسيقية والمقاطع الصوتية المستندة إلى MIDI.
تشغيل الأصوات باستخدام AudioClip
لتبدأ ، دعنا نستكشف كيفية تشغيل ملفات الصوت باستخدام امتداد مقطع صوتي الواجهة ، والتي تعد جزءًا من ملف java.applet طَرد. على الرغم من أن واجهة AudioClip تم إنشاؤها في البداية للتطبيقات الصغيرة ، إلا أنها لا تزال ملائمة ومفيدة لتشغيل ملفات الصوت الصغيرة في تطبيقات Java.
import java.applet.AudioClip;
import java.net.URL;
public class SoundPlayer {
public static void main(String[] args) {
AudioClip sound;
URL soundURL = SoundPlayer.class.getResource("sound.wav");
sound = java.applet.Applet.newAudioClip(soundURL);
sound.play();
}
}
في مقتطف الشفرة أعلاه ، قمنا باستيراد ملف مقطع صوتي واجهة و URL فصل. تسمح لنا هذه الفئات بتحميل مورد صوتي وتشغيله باستخدام طريقة play () لمثيل AudioClip. لاستخدام مقطع صوتي ، تأكد من وضع ملف "sound.wav" في نفس الدليل مثل ملف Java أو توفير مسار الملف الصحيح.
ومع ذلك ، إذا كنت تعمل مع ملفات صوتية أكبر أو تحتاج إلى تحكم أكثر تعقيدًا في التشغيل ، فقد لا تكون واجهة AudioClip كافية ، ويجب عليك التفكير في استخدام فئة AudioSystem.
تشغيل الأصوات باستخدام فئة النظام الصوتي
استخدم نظام الصوت class هي جزء من حزمة javax.sound.sampled وتوفر المزيد من إمكانيات تشغيل الصوت المتقدمة. يوضح المثال التالي كيفية تشغيل ملف صوتي باستخدام فئة النظام الصوتي:
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import java.io.File;
import java.io.IOException;
public class SoundPlayer {
public static void main(String[] args) {
try {
File soundFile = new File("sound.wav");
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(soundFile);
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
// Keep the application running till the sound is played completely
Thread.sleep(clip.getMicrosecondLength() / 1000);
} catch(LineUnavailableException | UnsupportedAudioFileException | IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
في هذا المثال ، قمنا أولاً باستيراد الفئات والواجهات المطلوبة من ملف javax.sound. عينات طَرد. ثم أنشأنا ملف AudioInputStream كائن لقراءة البيانات الصوتية من الملف ، و مشبكية المثيل لعقد البيانات الصوتية في الذاكرة. بعد فتح المقطع ، قمنا باستدعاء طريقة start () لتشغيل الصوت.
يوفر هذا النهج مزيدًا من التحكم في تشغيل الصوت ، بما في ذلك القدرة على إيقاف الصوت مؤقتًا واستئنافه وتكراره وإيقافه ، مما يجعله مناسبًا لمجموعة كبيرة من التطبيقات.
باختصار ، ناقشنا طريقتين مختلفتين لتشغيل الأصوات في Java باستخدام فئات AudioClip و AudioSystem. تعد واجهة AudioClip مناسبة لملفات الصوت الصغيرة في التطبيقات البسيطة ، بينما توفر فئة AudioSystem إمكانات متقدمة لتشغيل الصوت لسيناريوهات أكثر تعقيدًا. تضمن الاستفادة من مكتبات Java القوية وظائف صوتية سلسة وتجربة مستخدم محسّنة عبر مختلف التطبيقات.