עבור לתוכן

[vb.net] הצגת סרט מstream

Featured Replies

פורסם

היי

בתוכנה שלי אני פותח סרט ע"י הפונקצייה mciSendString שבwinmm.dll

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

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

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

את התמונה אני מצליח לשלוח, הבעייה בצליל.

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

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

או שיש פתרון יותר פשוט לשמירת קול בזמן אמת למערך bytes(על מנת לשלוח אותו), ולהשמיעו?

אם יש פתרון, חיי קלים(אני מניח), אסמך לשמוע מהוא אותו הפתרון.

אם לא, סיבוכים בשבילי, כיצד אני עושה את השמירה של שנייה במהלך הסרט דרך mciSendString?

תודה מראש

מיכאל

פורסם
  • מחבר

אפשט את העניין

האם ניתן בעזרת הפונקצייה mciSendString שבתוך winmm.dll, או כל שיטב אחרת, להשמיע קובץ .wav מתוך memorystream? (מערך ביטים שלתוכו טענתי את הקובץ)

מיכאל

פורסם
  • מחבר

שוב אני מתפשר, שאלה חדשה, כיצד אני יכול לחלק קובץ אודיו גדול(נגיד 100MB) לחלקים קטנים(נגיד 10MB) ולשמור על הדיסק?

מיכאל

  • 2 שבועות מאוחר יותר...
פורסם

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

בקשר לשמירת קובץ ה-wav ל-MemoryStream,

יש תהליך שנקרא Serialization, תהליך זה מאפשר לך להפוך

אובייקטים למערך של בייטים. כך שתוכל להפוך אובייקט שאחראי

לקובץ WAV למערך בייטים, לשמור אותו ב-MemoryStream ואז להפוך

אותו בחזרה לאובייקט WAV באמצעות Deserialization.

אם אתה מעלה את הקובץ Wav שלך באמצעות מחלקה מסויימת, תהפוך את אותו

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

להפוך כול אובייקט, אבל שווה לנסות.

השתמשתי בשיטה הזו באחד מן המאמרים שכתבתי בכדי להעביר תמונה ממקום למקום ברשת:

http://www.codeproject.com/KB/audio-video/CamCommunication.aspx

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים