תוכן עניינים:

הדרכת תכנות מעניינת לעיצוב למעצב-טעינת מדיה ואירוע: 13 שלבים
הדרכת תכנות מעניינת לעיצוב למעצב-טעינת מדיה ואירוע: 13 שלבים

וִידֵאוֹ: הדרכת תכנות מעניינת לעיצוב למעצב-טעינת מדיה ואירוע: 13 שלבים

וִידֵאוֹ: הדרכת תכנות מעניינת לעיצוב למעצב-טעינת מדיה ואירוע: 13 שלבים
וִידֵאוֹ: דניאל שמאכטנברגר: האם הטכנולוגיה תהרוס אותנו? 2024, יולי
Anonim
הדרכת תכנות עיבוד מעניינת למעצב-טעינת מדיה ואירוע
הדרכת תכנות עיבוד מעניינת למעצב-טעינת מדיה ואירוע

עיבוד ניתן לטעון הרבה נתונים חיצוניים, ביניהם שלושה סוגים נפוצים מאוד. הם תמונה, אודיו ווידאו בנפרד.

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

שלב 1: קרא תמונה

לפני שנתחיל, בואו נסתכל אחורה על שיטת טעינת התמונה.

שלב 2: פונקציות הקשורות לתמונה

לפני שנשתמש בפונקציות אלה, עלינו ליצור אובייקט תמונה באמצעות PImage. לאחר מכן נוכל להשתמש בפונקציות אלה כדי להגדיר כל מיני תכונות תמונה.

אל תשכח לאחסן את מקורות התמונה שלך בקובץ נתונים לפני הפעלת התוכנית.

שלב 3: טעינת מוסיקה, הפעלה ועצירה

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

דוגמא לקוד (10-1):

[cceN_cpp theme = "dawn"] ייבוא עיבוד.סאונד.*;

צליל SoundFile;

הגדרת בטל () {

גודל (640, 360);

רקע (255);

sound = new SoundFile (זה, "1.mp3");

}

צייר חלל () {

}

void keyPressed () {

// השמע צליל

אם (מפתח == 'p') {

sound.play ();

}

// עצור צליל

if (key == 's') {

sound.stop ();

}

} [/cceN_cpp]

הכנה:

העיבוד עצמו אינו נושא ספריית סאונד כלשהי. אתה צריך להוריד אותו בעצמך. לכן, לפני כתיבת הקוד שלך, מוטב שתעשה את ההכנות הבאות.

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

עם זאת, אם אנו משתמשים בפונקציה זו במדינתנו (בסין), איננו יכולים להוריד אותה על ידי חיבור האינטרנט ישירות. עלינו להפעיל VPN. למרות שאנו מתחילים אותו, יהיו תנאים לא יציבים. אז אתה צריך להיות סבלני כדי לנסות את זה מספר פעמים. זוהי שיטת הטעינה הנוחה ביותר. אם אינך יכול להתקין, עליך להוריד מהאתר הרשמי באופן ידני. (https://processing.org/reference/libraries/) מכיוון ששיטת ההתקנה הידנית מסובכת מאוד, נדון בה עוד בפרק השני.

קוד Exaplain:

ספריית הקול יכולה לפעול כראוי לאחר השלמת ההכנה. התמודד עם הקוד לעיל, לחץ על הפעלה ואז הוא יפעל. הקש על מקש "P" להשמעת מוסיקה, "S" להפסקת המוסיקה.

אם הוא רגיל לתוכנית, עלינו לטעון אותה תחילה. בהתחלה, עלינו להוסיף משפט "ייבוא עיבוד. צליל.*". "יבוא" היא מילת המפתח, כלומר טעינה מילולית. הוסף את שם הספרייה מאחורי "יבוא", ואז הוא יטען את הספרייה. הזנב בדרך כלל עוקב אחר סימן "*", ולכן הוא יטען את כל השיעורים הקשורים לספרייה לתוכנית מבלי להוסיף אותם אחד אחד באופן ידני.

במשפט השני, "SoundFile sound;" הכריז על אובייקט שמע. SoundFile דומה ל- PImage.

בתוך הגדרת הפונקציות, "sound = new SoundFile (זה," 1.mp3 ");" משמש ליצירת אובייקט והגדרת נתיב הקריאה שלו. כאן למעשה כבר התחלנו להשתמש ב- Class קונספט חדש. כרגע אנחנו לא דנים בזה לעומק. עלינו רק לדעת שזוהי שיטת כתיבה קבועה והפרמטר האחרון הוא מילוי כתובת מקור המוסיקה.

בין אירועי keyPressed (), "sound.play ()" ו- "sound.stop ()" פועלים יחסית כאפקט של משחק ועצירה. "." באמצע מציין פונקציית חבר שמשחק והפסק שייכים לאובייקטים של שמע. אנו יכולים להתייחס לתפקוד החברים כפונקציה הכלולה באובייקט. הוא שייך לאובייקט זה, המוגדר מראש. מאוחר יותר, כאשר עלינו לנגן אובייקטי שמע מרובים, עלינו להוסיף רק ".play ()" מאחורי שם המשתנה היחסי.

מקורות שמע יאוחסנו בקובץ נתונים תחת אותו קטלוג של קובץ סקיצות (עם סיומת pde). אם אין, תוכל ליצור אחד באופן ידני.

אל תשכח לכתוב פונקציה לצייר. למרות שלא ציירת שום גרפיקה, יש צורך להשמיע מוזיקה בהצלחה.

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

העיבוד תומך בפורמטי אודיו נפוצים כמו mp3, wav, ogg וכו '.

שלב 4: בקרת מהירות מוזיקה

הדוגמאות הבאות יתחילו להיות מעניינות בהרבה. העיבוד סיפק כמה פונקציות שיכולות לשלוט על מהירות נגינת המוסיקה. במקביל, הטונים ישתנו עם מהירות הנגינה של המוסיקה. כאשר אנו משתמשים בעכבר לשליטה, הוא ייצור אפקט פסיכדלי מאוד.

אתר וידאו:

דוגמא לקוד (10-2):

[cceN_cpp theme = "dawn"] ייבוא עיבוד.סאונד.*;

צליל SoundFile;

הגדרת בטל () {

גודל (640, 360);

רקע (255);

sound = new SoundFile (זה, "1.mp3");

}

צייר חלל () {

מהירות צף = mouseX/(float) רוחב * 3;

sound.rate (מהירות);

צף כרך = עכבר Y/(צף) גובה * 4;

sound.amp (כרך);

}

void keyPressed () {

// השמע צליל

אם (מפתח == 'p') {

sound.play ();

}

// עצור צליל

if (key == 's') {

sound.stop ();

}

} [/cceN_cpp]

קוד הסבר:

Function.rate () שולט על מהירות השמעת השמע. הערך בסוגריים קובע את המהירות והאיטיות של מהירות המשחק. כאשר הערך הוא 1, מהירות הנגינה רגילה. כאשר זה מעבר ל -1, אז האץ; בעוד שזה מתחת ל -1, ואז האט.

פונקציה.amp () שולטת בעוצמת השמע. הערך בסוגריים קובע את ערך הנפח. כאשר הוא 1, ערך הווליום תקין. כאשר זה מעבר ל -1, הגדל את עוצמת הקול; בזמן שהוא מתחת ל -1, ולאחר מכן הפחית את עוצמת הקול.

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

שלב 5: הפעלה וידיאו של וידאו

בעיבוד, טעינת וידאו דומה לטעינת אודיו. עליך להוריד קודם כל את ספריית הווידיאו. (https://processing.org/reference/libraries/video/index.html)

דוגמא לקוד (10-3):

[cceN_cpp theme = "dawn"] ייבוא עיבוד.ווידאו.*;

סרט סרט;

הגדרת בטל () {

גודל (640, 360);

רקע (0);

mov = סרט חדש (זה, "1.מוב");

}

void movieEvent (סרט סרטים) {

mov.read ();

}

צייר חלל () {

תמונה (mov, 0, 0, 640, 360);

}

void keyPressed () {

אם (מפתח == 'p') {

mov.play ();

}

if (key == 's') {

mov.stop ();

}

אם (מפתח == 'd') {

mov.pause ();

}

} [/cceN_cpp]

צילום מסך של וידאו:

קוד הסבר:

המשפט הראשון "import process.video.*;" משמש לטעון ספריית וידאו.

המשפט השני "Movie mov;" משמש להצהרה על אובייקט וידאו. ביניהם, הפונקציה של "סרט" דומה ל- PImage.

בהגדרת פונקציות, ההשפעה של "mov = new Movie (זה," 1.mov ");" היא ליצור אובייקט ולהגדיר את נתיב הקריאה שלו. הפרמטר האחרון ימולא בכתובת מקור הווידאו.

מאחורי ההתקנה, movieEvent מייצג אירוע וידאו. הוא משמש לעדכון וקריאת מידע וידאו. "mov.read ()" במקרה פירושו קריאה.

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

פונקציה.play () פירושה משחק. הפונקציה.stop () פירושה עצירה, והיא תאפס את הסרטון. פונקציה.pause () פירושה הפסקה. הוא יפריע למשחק הנוכחי, שיימשך עד להופעת הפונקציה.play ().

שלב 6: בקרת מהירות וידאו

דוגמא לקוד (10-4):

[cceN_cpp theme = "dawn"] ייבוא עיבוד.ווידאו.*;

סרט סרט;

הגדרת בטל () {

גודל (640, 360);

רקע (0);

mov = סרט חדש (זה, "transit.mov");

}

void movieEvent (סרט סרטים) {

mov.read ();

}

צייר חלל () {

תמונה (mov, 0, 0, רוחב, גובה);

float newSpeed = mouseX/(float) רוחב * 4;

mov.speed (newSpeed);

}

void keyPressed () {

אם (מפתח == 'p') {

mov.play ();

}

if (key == 's') {

mov.stop ();

}

אם (מפתח == 'd') {

mov.pause ();

}

}

[/cceN_cpp]

קוד הסבר:

ניתן להשתמש בפונקציה. Speed () לשליטה על מהירות הפעלת הווידאו. כאשר ערך הפרמטר הוא 1, מהירות הנגינה תקינה. כאשר הערך עולה על 1, אז להאיץ; בעוד שזה מתחת ל -1, ולאחר מכן הורד.

מכיוון שבנינו משתנה מקומי newSpeed וייבאנו אותו לפונקציית setSpeed (), קואורדינטת העכבר תשפיע ישירות על מהירות ההפעלה של הסרטון.

באשר לדוגמאות נוספות אודות וידאו, תוכל להתייחס לספריות - וידאו בספריית התיקים.

שלב 7: עיבוד אירועים נפוצים

בעבר, הצגנו אירוע keyPressed () בלבד. הוא יופעל לאחר לחיצה על המקלדת. בהמשך, נציג עבורך אירועים נפוצים אחרים בעיבוד.

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

זרימת אירועים

אנו יכולים להשתמש בדוגמה כדי לדעת את סדר הביצוע של אירועים.

דוגמא לקוד (10-5):

[cceN_cpp theme = "dawn"] הגדרת חלל () {

frameRate (2);

println (1);

}

צייר חלל () {

println (2);

}

void mousePressed () {

println (3);

}

void mouseMoved () {

println (4);

}

void mouseReleased () {

println (5);

}

void keyPressed () {

println (6);

}

void keyReleased () {

println (7);

} [/cceN_cpp]

קוד הסבר:

בהגדרת פונקציות, function frameRate () קבע את קצב מהירות הפעולה של התוכנית ל -2 פריימים לשנייה. הורדת קצב המסגרות יכולה לעזור לנו להתבונן בפלט בקונסולה למקרה שאירועים שיופעלו יוברשו מיד על ידי נתונים חדשים מאחור.

נסה להזיז את העכבר, לחץ על העכבר, שחרר את העכבר וצפה בתוצאת הפלט. הכירו את הזמנת ביצוע האירוע באמצעות println.

מה שכדאי לשים לב הוא שאי אפשר לכתוב פונקציות לציור לאירועים אחרים למעט ציור פונקציות, או שהוא לא יכול להציג. אם ברצוננו לשלוט בהסתרה והצגה של רכיבים גרפיים באמצעות אירועים כמו keyPressed, אנו עשויים לשקול לבנות משתנה bool כאמצעי.

אירועים יבוצעו לפי הסדר. רק לאחר יישום כל הקוד באירוע הנוכחי, הוא יבצע את הקוד באירוע הבא.

שלב 8: דוגמה מקיפה-מקלדת מוסיקה

בשילוב עם האירועים החדשים, אנו יכולים להוסיף אינטראקציות חדשות לתוכנית שלנו. לאחר מכן, רק בכמה דקות, אנו יכולים לאנלוגי מקלדת מוזיקה בקלות.

אתר וידאו:

דוגמא לקוד (10-6):

[cceN_cpp theme = "dawn"] ייבוא עיבוד.סאונד.*;

צליל קובץ קול 1, צליל 2, צליל 3, צליל 4, צליל 5;

מקש בוליאני 1, מפתח 2, מקש 3, מקש 4, מקש 5;

הגדרת בטל () {

גודל (640, 360);

רקע (255);

noStroke ();

sound1 = SoundFile חדש (זה, "do.wav");

sound2 = SoundFile חדש (זה, "re.wav");

sound3 = SoundFile חדש (זה, "mi.wav");

sound4 = SoundFile חדש (זה, "fa.wav");

sound5 = SoundFile חדש (זה, "so.wav");

}

צייר חלל () {

רקע (255, 214, 79);

rectMode (CENTER);

מצוף w = רוחב * 0.1;

לצוף h = גובה * 0.8;

אם (מפתח 1) {

מילוי (255);

} אחר {

מילוי (238, 145, 117);

}

rect (רוחב/6, גובה/2, w, h);

אם (מפתח 2) {

מילוי (255);

} אחר {

מילוי (246, 96, 100);

}

rect (רוחב/6 * 2, גובה/2, w, h);

if (key3) {

מילוי (255);

} אחר {

מילוי (214, 86, 113);

}

rect (רוחב/6 * 3, גובה/2, w, h);

אם (מפתח 4) {

מילוי (255);

} אחר {

מילוי (124, 60, 131);

}

rect (רוחב/6 * 4, גובה/2, w, h);

אם (מפתח 5) {

מילוי (255);

} אחר {

מילוי (107, 27, 157);

}

rect (רוחב/6 * 5, גובה/2, w, h);

}

void keyPressed () {

אם (מפתח == 'א') {

sound1.play ();

מפתח 1 = נכון;

}

if (key == 's') {

sound2.play ();

key2 = true;

}

אם (מפתח == 'd') {

sound3.play ();

key3 = true;

}

אם (מפתח == 'f') {

sound4.play ();

key4 = true;

}

אם (מפתח == 'g') {

sound5.play ();

key5 = נכון;

}

}

void keyReleased () {

אם (מפתח == 'א') {

key1 = false;

}

if (key == 's') {

key2 = false;

}

אם (מפתח == 'd') {

key3 = false;

}

אם (מפתח == 'f') {

key4 = false;

}

אם (מפתח == 'g') {

key5 = false;

}

} [/cceN_cpp]

קוד הסבר:

עלינו ליצור אובייקטים מרובים של שמע כדי לקרוא את מידע הצליל היחסי כדי לנגן צלילים שונים כאשר מפתחות שונים מופעלים.

כאן אנו משתמשים במפתח אירוע חדשReleased (). תפקידו של אירוע זה הוא לשחזר את צבע המקלדת לצבע המקורי שלה. כאשר תשחרר את המפתח, הוא יופעל.

5 הערכים הבולאניים המוצהרים בראש משמשים לאיתור סטטוס המפתח.

שלב 9: דוגמה מקיפה-לוח מוסיקה 1

מלבד אירוע מקלדת, אירוע עכבר הוא דבר טוב שעלינו להשתמש בו בגמישות. הדוגמה הבאה נועדה ליצור פלטת מוזיקה, ביניהן השתמשנו בשני אירועים הקשורים לעכבר.

אתר וידאו:

דוגמא לקוד (10-7):

[cceN_cpp theme = "dawn"] ייבוא עיבוד.סאונד.*;

צליל קובץ קול 1, צליל 2, צליל 3, צליל 4, צליל 5;

בוליאני isDragging;

הגדרת בטל () {

גודל (640, 360);

רקע (255, 214, 79);

noStroke ();

sound1 = SoundFile חדש (זה, "do.wav");

sound2 = SoundFile חדש (זה, "re.wav");

sound3 = SoundFile חדש (זה, "mi.wav");

sound4 = SoundFile חדש (זה, "fa.wav");

sound5 = SoundFile חדש (זה, "so.wav");

}

צייר חלל () {

אם (isDragging) {

מילוי (107, 27, 157, 100);

אליפסה (mouseX, mouseY, 16, 16);

}

}

void mouseDragged () {

isDragging = true;

אם (mouseX> 100 && mouseX <105) {

sound1.play ();

}

אם (mouseX> 200 && mouseX <205) {

sound2.play ();

}

אם (mouseX> 300 && mouseX <305) {

sound3.play ();

}

אם (mouseX> 400 && mouseX <405) {

sound4.play ();

}

אם (mouseX> 500 && mouseX <505) {

sound5.play ();

}

}

void mouseReleased () {

isDragging = false;

} [/cceN_cpp]

קוד הסבר:

אנו מקווים שרק כאשר לחצנו על העכבר וגררנו אותו, נוכל לצייר תמונות. לכן עלינו לבנות משתנה בוליאני isDragging כדי להשיג את המצב הנוכחי.

בעת גרירת העכבר, isDragging הופך לערך אמיתי כך שפונקציות ציור בתוך Draw יבוצעו. זה ישאיר עקבות על המסך. כאשר אנו משחררים את העכבר, isDragging הופך לערך שקרי. אז פונקציות הציור בפונקציית צייר יפסיקו את הביצוע.

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

שלב 10: דוגמה מקיפה-לוח מוסיקה 2 (גרסה מעודכנת)

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

תוכלו לצפות בסרטונים בקישור הבא:

v.qq.com/x/page/w03226o4y4l.html

דוגמא לקוד (10-8):

[cceN_cpp theme = "dawn"] ייבוא עיבוד.סאונד.*;

צליל קובץ קול 1, צליל 2, צליל 3, צליל 4, צליל 5;

בוליאני isDragging;

הגדרת בטל () {

גודל (640, 360);

רקע (255, 214, 79);

noStroke ();

sound1 = SoundFile חדש (זה, "do.wav");

sound2 = SoundFile חדש (זה, "re.wav");

sound3 = SoundFile חדש (זה, "mi.wav");

sound4 = SoundFile חדש (זה, "fa.wav");

sound5 = SoundFile חדש (זה, "so.wav");

}

צייר חלל () {

אם (isDragging) {

שבץ (107, 27, 157, 100);

strokeWeight (10);

line (mouseX, mouseY, pmouseX, pmouseY);

}

}

void mouseDragged () {

isDragging = true;

אם ((mouseX - 100) * (pmouseX - 100) <0) {

sound1.play ();

}

אם ((mouseX - 200) * (pmouseX - 200) <0) {

sound2.play ();

}

אם ((mouseX - 300) * (pmouseX - 300) <0) {

sound3.play ();

}

אם ((mouseX - 400) * (pmouseX - 400) <0) {

sound4.play ();

}

אם ((mouseX - 500) * (pmouseX - 500) <0) {

sound5.play ();

}

}

void mouseReleased () {

isDragging = false;

} [/cceN_cpp]

קוד הסבר:

כאן השתמשנו בשני משתנים pmouseX ו- pmouseY שנשאו במערכת העיבוד עצמה. הם דומים ל- mouseX ו- mouseY אבל מה שהם השיגו הוא קואורדינטת העכבר במסגרת האחרונה.

ב- Function Draw השתמשנו בשורת הפונקציות () כדי להחליף את אליפסה הפונקציה המקורית (). זה הופך את קואורדינטות המסגרת האחרונה לחיבור עם קואורדינטות המסגרת הנוכחית ישירות. כך שנוכל לצייר קווים ישרים או עקומות קוהרנטיות.

במקרה ש- mouseDragged, עיצבנו מצב חדש להפעלה.באמצעות שיפוט האם הקואורדינטות של המסגרת האחרונה והמסגרת הנוכחית נמצאות באותו צד כדי לדעת אם חוצה קואורדינטות מסוימות. קח דוגמה לתנאי זה: "if ((mouseX - 100) * (pmouseX - 100) <0)". ביניהם, מהערך החיובי והשלילי הנובע מ- "mouseX - 100", אנו יכולים לדעת אם mouseX נמצא מימין או משמאל של הקואדינציה האופקית 100. בדומה ל "pmouseX - 100". לכן, כאשר שתי הנקודות מלפנים ומאחור אינן באותו צד, חיובי מכפיל את השלילי, הוא יקבל מספר שלילי חדש. לפיכך תנאי הביצוע מתקיים.

האמור לעיל הוא ביטוי מפושט, שהשתמש בחוכמה באלגוריתם מתמטי מסוים-שני שלילי הכפל ייצרו חיובי. אתה יכול גם לחלק אותו לשני מצבים לדיון בנפרד. עם זאת, זה הרבה יותר מסובך לכתוב תנאי שיפוט. תנאי השיפוט "אם ((mouseX = 100) || (mouseX> 100 && pmouseX <= 100))" שווים לתנאים הקובעים של קוד המקור.

שלב 11: פונקציות יחסיות אודות בקרת אודיו ווידאו

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

להקדמה נוספת, תוכל לעיין במסמכים מהאתר הרשמי.

אודיו (https://processing.org/reference/libraries/sound/index.html)

סרטון (https://processing.org/reference/libraries/video/index.html)

מאמר זה מגיע מהמעצב וונזי.

שלב 12: קריאות יחסיות:

הנחיית תכנות מעניינת למעצב-עיבוד מגע ראשוני

הדרכת תכנות מעניינת למעצב - צור את תוכנית העיבוד הראשונה שלך

הדרכת תכנות מעניינת למעצב-הפעל את התמונה שלך (חלק ראשון)

הדרכת תכנות מעניינת למעצב-הפעל את התמונה שלך (חלק שני)

הנחיות תכנות מעניינות לבניית תהליכי מעצב- תכנית- הצהרת לולאה

הדרכת תכנות מעניינת למעצב-בקרת תהליך התוכנית-הצהרת מצב (חלק ראשון)

הדרכת תכנות מעניינת למעצב-בקרת תהליך התוכנית-הצהרת מצב (חלק ב ')

הדרכת תכנות מעניינת למעצב-פונקציות מותאמות אישית וחזר פרקטלי

הדרכת תכנות מעניינת למעצב-פונקציות מותאמות אישית וחזר פרקטלי

הנחיית תכנות עיבוד מעניינת למעצב-שליטה בצבעים

שלב 13: מקור

מאמר זה הוא מתוך:

אם יש לך שאלות, תוכל ליצור קשר עם: [email protected].

מוּמלָץ: