טיפ ג'אווה 24: כיצד לנגן שמע ביישומים

הפעלת קבצי שמע ביישומי Java אינה נתמכת באופן רשמי במהדורה הנוכחית של Java. אבל אל תפחד, יש דרך! טיפ זה יראה לכם כיצד - החל בתיאור השלבים הבסיסיים הכרוכים בהפעלת קטעי שמע ביישומוני Java ואז מעבר לתמיכה ביישומי Java.

השמעת קטעי שמע ביישומונים היא די פשוטה וכוללת את השלבים הבאים:

  • צור אובייקט AudioClip
  • טען קובץ קול .au לתוך AudioClip
  • השמע צלילים פעם או לולאה ברציפות
  • עצור את ההשמעה

כך נראה הקוד לשלבים אלה:

ייבא java.applet. *; AudioClip ac = getAudioClip (getCodeBase (), soundFile); ac.play (); // נגן פעם אחת ac.stop (); // להפסיק לשחק ac.loop (); // לשחק ברציפות

נראה הגיוני להשתמש באותו קוד להפעלת קטעי שמע ביישום Java. למרבה הצער, אם תעשה זאת תקבל שגיאות מהמהדר. למה? מכיוון AudioClipשהאובייקט getAudioClip()והשיטה הם חלק מחבילת java.applet - ואינם חלק מיישומים. החדשות הטובות הן שאנחנו יכולים לצלול למטה ולגרום לדברים לעבוד בעצמנו.

החוכמה לפתרון בעיה זו היא להשתמש בכמה תכונות לא מתועדות שמספקות Sun ב- JDK שלה. אם תיקח צצה classes.zip הקובץ מן JDK השמש (באמצעות כל אחד משירותים הציבוריים zipfile השונה), אנו מוצאים לא רק את ג'אווה הסטנדרטית חבילות כגון java.applet אלא גם sun.audio . (אלה נמצאים בספריה שמש / שמע).

Sun.audio החבילה מכילה את כל מה שאנחנו צריכים כדי להיות מסוגל לשחק קטעי אודיו! הנה הקוד:

יבוא sun.audio. *; // ייבא את החבילה sun.audio ייבא java.io. *; // ** הוסף זאת לקוד היישום שלך לפי הצורך // פתח זרם קלט לקובץ השמע. InputStream in = FileInputStream חדש (שם קובץ); // צור אובייקט AudioStream מזרם הקלט. AudioStream כמו = AudioStream חדש (ב); // השתמש ב"נגן "חבר הכיתה הסטטי מה- AudioPlayer בכיתה להפעלת // קליפ. AudioPlayer.player.start (כמו); // באופן דומה, כדי לעצור את האודיו. AudioPlayer.player.stop (כמו);

כדי להשתמש בכתובת URL כמקור זרם השמע, החלף את הבא להגדרת זרם הקלט וזרם השמע:

AudioStream כמו = AudioStream חדש (url.openStream ()); 

השמעת זרם השמע ברציפות מוסיפה מעט יותר מורכבות:

// צור זרם שמע כאמור. // צור מקור AudioData. נתוני AudioData = as.getData (); // צור ContinuousAudioDataStream. ContinuousAudioDataStream cas = new ContinuousAudioDataStream (data); // השמע אודיו. AudioPlayer.player.play (cas); // באופן דומה, כדי לעצור את האודיו. AudioPlayer.player.stop (cas);

והנה יש לך את זה. זכור, טכניקה זו משתמשת בתכונות לא מתועדות; אין שום ערבויות שזה יעבוד עם כלום מלבד ה- JDK הנוכחי.

צ'ונג סר וואה הוא יועץ במרכז הכושר לג'אווה בסינגפור. בדוק את תחרות Java Cup של המרכז.

סיפור זה, "טיפ ג'אווה 24: כיצד להשמיע אודיו ביישומים" פורסם במקור על ידי JavaWorld.