تشارك هذه المقالة الكود المحدد لـ Javax.sound لتحقيق تشغيل الصوت البسيط للرجوع إليه. المحتوى المحدد كما يلي
/ ** * see * author al_assad [email protected] * date 17 نوفمبر ، 2016 في 6:27:59 PM * version v1.0 * الوصف: لاعب صوت بسيط (يدعم فقط Au ، RA ، Wav) * تنفيذ تشغيل الصوت بسرعة دون استخدام JMF * */ import javax.sound.sound. استيراد java.io.*؛ الطبقة العامة MusicPlayer {Private String MusicPath ؛ // ملف صوت خاص متطاير Boolean Run = true ؛ // سجل ما إذا كان الصوت يلعب موضوعًا خاصًا ؛ . Audioformat الخاص الخاص ؛ sourcedataline الخاص ؛ MusicPlayer (String MusicPath) {this.musicPath = musicPath ؛ prefest () ؛ }. // احصل على الكائن المشفر لـ AudioForMat = AudioStream.getFormat () ؛ // تغليف معلومات الصوت dataline.info datalineinfo = new dataline.info (sourcedataline.class ، audioformat ، acudiosystem.not_specified) ؛ // إنشاء صفوف بيانات المصدر باستخدام فئة المعلومات بعد لف معلومات الصوت ، والعمل كمصدر sourcedataline من الخلاط = (sourcedataline) Audiosystem.getline (DatalineInfo) ؛ sourcedataline.Open (Audioformat) ؛ sourcedataline.start () ؛ } catch (UnsupportedaudiofileException ex) {ex.printStackTrace () ؛ } catch (lineUnavailableException ex) {ex.printStackTrace () ؛ } catch (ioException ex) {ex.printStackTrace () ؛ }} // destructor: إغلاق دفق قراءة الصوت وخطوط البيانات المحمية باطل اللمسات () رمي {super.finalize () ؛ sourcedataline.drain () ؛ sourcedataline.close () ؛ AudioStream.close () ؛ }. }} آخر {playmusic () ؛ // مسح خط البيانات وإغلاق sourcedataline.drain () ؛ sourcedataline.close () ؛ AudioStream.close () ؛ }} catch (ioException ex) {ex.printStackTrace () ؛ }} خاص playmusic () {try {synchronized (this) {run = true ؛ } // اقرأ دفق بيانات الصوت من خلال خط البيانات وأرسله إلى الخلاط ؛ // عملية نقل دفق البيانات: AudioInputStream -> sourcedataline ؛ AudioStream = Audiosystem.getaudioInputStream (ملف جديد (MusicPath)) ؛ عدد int بايت tempbuff [] = بايت جديد [1024] ؛ بينما ((count = audioStream.Read (tempbuff ، 0 ، tempbuff.length))! = -1) {synchronized (this) {بينما (! run) wait () ؛ } sourcedataline.write (tempbuff ، 0 ، count) ؛ }} catch (UnsupportedaudiofileException ex) {ex.printStackTrace () ؛ } catch (ioException ex) {ex.printStackTrace () ؛ } catch (interruptedException ex) {ex.printStackTrace () ؛ }} // إيقاف تشغيل الصوت plause private void spopmusic () {synchronized (this) {run = false ؛ إخطار () ؛ }} // تواصل تشغيل الموسيقى private void continuemusic () {synchronized (this) {run = true ؛ إخطار () ؛ }} // طريقة التحكم في المكالمات الخارجية: إنشاء مؤشر ترابط الصوت الرئيسي ؛ public void start (boolean loop) {mainthread = new thread (new RunNable () {public void run () {try {playmusic (loop) ؛} catch (interruptedException e) {eprintstacktrace () ؛}}) ؛ MainThread.start () ؛ }. }. }. // إنشاء مشغل مشغل الموسيقى. ابتداء (صحيح) ؛ // ابدأ التشغيل في نموذج حلقة ، لا يلعب اللاعب (false) timeunit.seconds.sleep (5) ؛ player.stop () ؛ // إيقاف تشغيل الصوت timeUnit.Seconds.sleep (4) ؛ player.continues () ؛ // استمر في البدء في تشغيل الصوت}}
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.