ארכיון

ארכיון של מאי, 2008

סאונד ב-FP10 או SoundMixer.computeSpectrum vs. SamplesCallbackEvent

19 מאי, 2008 gadi_sr אין תגובות

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

ישנם שתי אופציות חדשות ב-FP10 והן:

<method name="extract" declaredBy="flash.media::Sound" returnType="Number" uri="http://www.adobe.com/2008/actionscript/Flash10/">
<parameter index="1″ type="flash.utils::ByteArray" optional="false"/>
<parameter index="2″ type="Number" optional="false"/>
<parameter index="3″ type="Number" optional="true"/>
</method>

הפונקציה extract של אובייקט Sound מעבירה ל-ByteArray את ה-Sound samples מאובייקט ה-Sound, הפרמטר השני מגדיר את כמות האודיו להעביר והפרמטר השלישי את ה-position ב-Sound (אם הוא לא מוגדר, ההעברה היא מהמקום האחרון בו נמצא ה-Sound). הפונקציה מחזירה מספר שהוא מספר ה-samples שהועברו ל-ByteArray.
האופציה השניה היא Event handler שמתרחש בארוע שהוא "samplesCallback", שמתרחש בכל אינטרבל מסויים ומבקש מידע של Sound. ב-callback צריך להכניס לתוך אובייקט מסוג ByteArray Sound.samplesCallbackData, כמות מסויימת של samples המות יכולה להיות בין 512 ל-8192 samples עבור כל קריאה של ה-event. הבחירה תלויה במפתח, ככל שהערך נמוך יותר ה-event יקרא יותר פעמים וייווצר overhead בנגן, וככל שהערך גבוה יותר ה-latency יהיה גבוה יותר. זהו האובייקט שצריך למלא:

<accessor name="samplesCallbackData" access="readonly" type="flash.utils::ByteArray" declaredBy="flash.media::Sound" uri="http://www.adobe.com/2008/actionscript/Flash10/"/>

ה-Event עצמו יורש מ-flash.events:Event ומכיל גם פרמטר position.

<type name="flash.events::SamplesCallbackEvent" base="Class" isDynamic="true" isFinal="true" isStatic="true">

<accessor name="position" access="readwrite" type="Number" declaredBy="flash.events::SamplesCallbackEvent"/>
<method name="clone" declaredBy="flash.events::SamplesCallbackEvent" returnType="flash.events::Event"/>
<method name="toString" declaredBy="flash.events::SamplesCallbackEvent" returnType="String"/>

</type>

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

עוד על אפשרויות Sound

כאשר ראיתי את האופציה של טעינת Sound לתוך ByteArray, חשבתי לעצמי הרי האופציה הזאת כבר קיימת ומיושמת עם אקולייזרים שזזים בהתאם ל-ByteArray שמנותח מהמידע של ה-Audio בזמן מסויים על ידי SoundMixer.computeSpectrum, להזכירכם, הפונקציה מאפשרת לדגום את האודיו שמנוגן בזמן נתון ולהמיר אותו ל-ByteArray וכך ניתן להשתמש בפרמטרים המוזנים ולעשות בהם שימוש ויזואלי, כמו זה. באופציה החדשה ישנם 2 הבדלים: האחד טריוויאלי, האפשרות לטעון Sound לאובייקט ולא רק לקבל ממנו, והשני הוא שה-Event לא צריך להיות מונע באמצעות זמן, ה-SoundMixer.computeSpectrum תופס Snapshot של מידע האודיו בזמן נתון אבל לא עוקב אחרי תנועת ה-packets עצמם אבל באובייקט החדש, ה-Event עוקב אחרי תנועת ה-packets ובצורה כזו יש מעקב אחרי המידע ואין חורים של זמן בין הדגימות. נחמד.

  • Share/Save/Bookmark

הרחבה בנושא P2P ותפקיד ה-CDNs ב-FP10

18 מאי, 2008 gadi_sr אין תגובות

מאמר מצויין של האנק וויליאמס בנושא הישום של P2P בנגן החדש והשלכותיו על Security ו-CDNs

http://whydoeseverythingsuck.com/2008/05/flash-10-p2p-and-cdns-deeper-analysis.html

תגובת ה-Product Manager של FP10

http://whydoeseverythingsuck.com/2008/05/flash-product-mgr-weighs-in-re-flash-10.html

  • Share/Save/Bookmark
קטגוריות:כללי תגיות:, ,

Flash Player 10 prerelease

17 מאי, 2008 gadi_sr אין תגובות

לפני יומיים שוחרר ב-labs של Adobe גרסה 10 שם קוד Astro עם רשימת פיצ'רים מהפכנית משהו. החידושים צפויים במספר רמות. הרמה הויזואלית מבטיחים Adobe רמה שנראתה עד היום באפליקציות דסקטופ בלבד. החידושים ברמה הויזואלית כוללים יצירת פילטרים ואפקטים על ידי המשתמש באמצעות Adobe Pixel Bender, האפקטים אינם צריכים התקנה מיוחדת בצד המשתמש וניתן להחיל אותם על כל Display Object בפלאש.

הרמה הגראפית כוללת גם יכולות 3D על ידי תמיכה ב- Drawing API מורחב, ברמת ביצוע מהירה ושימוש יעיל הרבה יותר במשאבי המחשב. רמת הביצועים המהירה עולה עוד יותר על ידי שימוש בעיבוד גרפי על ידי ה-GPU (Graphics processing unit) במקום השימוש ב-CPU גם כאשר האפליקציה רצה ב-Browser מה שמאפשר ביצועים הרבה יותר מהירים לקוד ואפשרות לשימוש ברכיבים גרפיים רבים ומורכבים יותר. התמיכה ב-GPU דורשת כרטיסי וידאו Open GL 2.0 עם תמיכה ב-GLSL . האופציה הזאת יכולה להשתנות ב-runtime על ידי שינוי פרמטר HTML. אם למחשב הלקוח אין תמיכה בחומרה, האפליקציה תרוץ באופן רגיל על ה-CPU.

בצד הטקסטואלי יש הוספה לתמיכה בשפות RTL (עברית בפלאש!!!) שימוש הרבה יותר חזק ב-device fonts כמו ב-embeded fonts. וניתן להחיל פילטרים ואפקטים גם על הטקסט.

ברמת תקשורת ומולטימדיה ישנם פיצ'רים נוספים שרובם יהיו רלוונטיים רק כאשר ה-FMS החדש יצא, אבל כאופציה ניתן להרשם לתוכנית ה-Beta של ה-FMS ולהתעדכן אפילו יותר מהר. החידושים בנושא זה הם בראש ובראשונה Dynamic Streaming. בגרסה החדשה של ה-FMS תהיה יכולת לשדר באיכות/fps המתאימים ללקוח על פי ביצועי הרשת הספיציפים שלו. ל-Actionscript תהיה גישה לביצועי הרשת וה-CPU של המחשב בכדי לדעת בכל זמן נתון מהי איכות הוידאו המקסימלית אותה יכול הלקוח לנצל וה-FMS ישדר אותה ללקוח בהתאם.

הפיצ'ר שהכי מרגש אותי בפלייר החדש הוא האופציה של RTMFP(Real Time Media Flow Protocol), מדובר ברשת תקשורת על בסיס UDP שיכולה לאפשר תקשורת בין משתמשים ללא צורך במעבר המידע דרך שרת (P2P!!!). גם במקרה הזה השרות ימתין עד להגעת הגרסה החדשה של ה-FMS, שייצר רשת שמבוססת על UDP אליה הלקוחות יתחברו ויעבירו מידע ביניהם. קצת לגבי UDP..
תמיכה נוספת של ה-FMS תהיה שידור אודיו ב-Speex בצד המקודד (ה-client) מאחר שעד היום יש תמיכה רק ב-compression של Nellymoser. שיפור מאוד משמעותי באיכות וב-latency.

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

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

  • Share/Save/Bookmark
קטגוריות:Flash Player תגיות:, , ,

חזרתי

16 מאי, 2008 gadi_sr תגובה אחת

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

טוב לחזור.

גדי

  • Share/Save/Bookmark
קטגוריות:כללי תגיות: