
int.Parse כדי לקבל את מספר המכשיר.הטקסט המלא של הדקות הראשונות בהרצאה «הדגמה של Singleton - חלק 7» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אוקיי, אז היום אנחנו רוצים לפתור את התרגיל שהגדלנו בשיעור הקודם. התרגיל הוא שאנחנו רוצים לדמות מספר ערוצי או מספר חומרות הקלטה לקול ולתמונה. אנחנו רוצים לאפשר הקלטה באודיו, זה נקרא סטריאו.
זה נקרא סטריאו. בווידאו אין איזה שם, אבל נגיד יש לי כמה מצלמות. אוקיי, אז בואו נתחיל בחלון הראשי ופה אנחנו רוצים, בואו נעבור לחלון שלנו.
אז כאן אמרנו שאנחנו רוצים להוסיף drop-down list עם איזשהו מספר וגם כאן, כדי שנוכל לבחור את רכיב החומרה שאיתו אנחנו רוצים לדבר. בואו נסגור, אוקיי, נעבור אל החלון ונוסיף drop-down list.
אוקיי, קוראים לזה combo box. בואו ניקח combo box ונשים אותו כאן ככה, זה רק למספרים, F4, אז ה-collection שלנו יהיה פשוט 0, Enter 1, Enter 2, זהו, אוקיי. וזה בעצם חומרות האודיו, אז זה האודיו devices, אודיו Devices, יפה.
עכשיו, כאשר אני לוחץ על Start Audio Recorder, אז אני רוצה לדבר אל, או להתייחס אל אודיו רקורדר מסוים. אז למעשה, אז למעשה אני לא רוצה לפנות אל אינסטאנס, כי אמור להיות לי מערך של אינסטאנסים.
אני רוצה לפנות אל הכניסה במערך שאותו בחרתי בדרופ דאון בקומבו בוקס. אז בואו נחלץ מהקומבו בוקס את המספר. אז יש לנו בו בוקס דיווייסס נקודה סלקטד אפשר פשוט להשתמש בסלקטד אינדקס זה במקרה אותו דבר כמו הסלקטד טקסט יותר בריא שנגיד לו סלקטד טקסט אז נעשה סלקטד טקסט את הסלקטד טקסט אנחנו רוצים להמיר
לאינט דיווייס נקרא device ID בדרך כלל קוראים לזה ואז נעשה אינט נקודה פארס וניתן לו את זה. זה מחלץ לי את ה-Device ID, 0, 1, 2 וכולי.
ואני בדילמה, אני רוצה להראות לכם שאפשר להוסיף עוד דיווייסים בזמן ריצה, אבל זה יסבך את התוכנית. תניחו שאפשר להוסיף עוד דיווייסים, הרשימה הזו גמישה והיא נקבעת על ידי כמה חומרות מחוברות, ואפשר לשנות את כמות החומרות שמחוברות למחשב בזמן ריצה.
של התוכנית או לכל הפחות בזמן ריצה של המחשב או לכל הפחות בזמן כיבוי והדלקה של מחשב אבל הרשימה הזו לא ידועה בזמן פיתוח שזה שונה מרשימת ערוצי התקשורת שהם כן ידועים בזמן הפיתוח כאן יש לנו רשימה דינמית בזמן פיתוח אוקיי אז נחזור לקוד אז יש לנו את ה device ID וכאן אני בעצם רוצה להגיד לו לא סתם האינדקס האינסטנס אלא מין כאלה סוגריים ופה להגיד
לו או Device ID. אוקיי, אז זה מה שאנחנו רוצים. אז כמובן שכבר אנחנו רואים שיש שגיאה. מה שאנחנו רוצים זה, אנחנו רוצים שאינסטאנס במקום ה-Device ID, ש-Device ID זה מספר 012, מספר רץ מ-0, שמזהה את המיקרופון במקרה שלנו.
אז אנחנו רוצים שאינסטאנס במקום ה-Device ID, נגיד אינסטנס במקום האפס יתייחס למיקרופון מסוים. נגיד יש לי מיקרופון, יש לי שלושה מיקרופונים בחדר, מחוברים למחשב, אז אחד קוראים לו אפס, לשני קוראים אחד, ולשלישי קוראים שתיים. אז אפס ואחד ושתיים.
אז אינסטנס במקום האפס מתייחס לאיזשהו מיקרופון מסוים. אוקיי. אז זה למעשה אמור להחזיר לי אודיו רקורדר מסוים.
זה מה שאנחנו רוצים שיקרה. אז בואו נעבור F12 לאינסטאנס ואנחנו רוצים לשנות את ההגדרה כך שאינסטאנס יחזיר מערך של אודיו רקורדרים. עכשיו אינסטאנס קטן הוא גם מערך של אודיו רקורדרים ולכן אולי כדאי יהיה לשנות את השם לאינסטאנסס אבל נתחיל מזה.
עכשיו כאן אני מקצה מערך של אודיו רקורדרים ואני גם שם פה שלוש. שני דברים אני חייב להגיד על זה. זה שאני מגדיר מערך של אודיו רקורדרים, אז אתם יכולים לבוא ולהגיד, רגע, רגע, רגע, אז אתה מראש, בזמן עליית המערכת או בפנייה הראשונה, כן, זה נראה שמראש אתה מקצה שלושה אודיו רקורדרים.
אבל לזה אני אגיד, לא, אני לא מקצה אפילו אחד. אני לא מפעיל את הקונסטרקטור של אודיו רקורדר אפילו פעם אחת.
כי יצירת מערך היא רק יצירת מערך של מצביעים כשמדובר בקלאס. כל כניסה במערך הזה יכולה להצביע לאודיו רקורדר ואז אנחנו נקצה אותה כאן.
נקצה כך שכל כניסה תצביע לאודיו רקורדר, וכרגע אנחנו עוד לא מקצים אודיו רקורדרים, רק מערך של מצביעים שכל כניסה יודעת להצביע לאודיו רקורדר.
זה מבלבל. דבר ראשון. דבר שני, תגידו לי, רגע, רגע, רגע, אמרת שאת השלוש הזה אנחנו לא יודעים בזמן פיתוח.
אז זה נכון, זה במציאות שיש לנו חומרות אמיתיות, אבל בדוגמה שלנו אנחנו לא ניכנס ממש ונבין כל הנושא הזה של החומרות. אז אנחנו פשוט נכתוב פה שלוש, שזה כאילו, בזמן ריצה של התוכנית, אז באמת התוכנית בעלייתה תצטרך באמת לברר, או לא רק בזמן עליית התוכנית, אלא גם בזמן ריצת התוכנית, הגודל של המערך הזה עלול להשתנות.
אם אני בזמן ריצת התוכנית מנתק ומחבר חומרות. אבל זה מאוד מסובך, אני לא נכנס לזה. אני מניח שא', אי אפשר לנתק ולחבר חומרות בזמן הריצה של התוכנית, כי זה נורא יסבך אותנו, אם נניח שאפשר לחבר.
אז נניח שאי אפשר לחבר ולנתק חומרות חדשות בזמן ריצת התוכנית. השלוש הזה נניח שזה שלוש שבזמן עליית התוכנית היא התוכנית ביררה וגילתה שיש שלוש חומרות אז התוכנית כבר יודעת שיש שלוש חומרות שקוראים להם 0,1 ו-2 אז זה השלוש אז זהו אז אמרתי את מה שרציתי אוקיי אז יש לנו את אינסטנס אז אם אינסטנס שווה
לנעל אז זה כבר חסר משמעות מה שאנחנו רוצים עכשיו לבדוק פתאום אני רואה שזה לא יוכל לעבוד עם סוגריים מרובעים מה שאנחנו נצטרך לעשות זה להגדיר את זה עם סוגריים רגילים.
זה כאילו קריאה, לא כאילו, זאת תהיה קריאה לפונקציה. אינסטנסס, תכף נשנה את השם לאינסטנסס, במקום ה-DeviceID מחזיר לי אודיו רקורדר מסוים.
אז זו בעצם הולכת להיות עכשיו פונקציה, והפונקציה הזו מקבלת int DeviceID, והיא מחזירה בלי get היא פונקציה, קונטרול kd אז היא בודקת אם אינסטנס במקום