Google is committed to advancing racial equity for Black communities. See how.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

לכידת מדיה ואילוצים

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

מכשירי מדיה

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

אילוצים

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

האילוצים הספציפיים מוגדרים באובייקט MediaTrackConstraint , אחד לשמע ואחד לווידיאו. התכונות באובייקט זה הם מסוג ConstraintLong , ConstraintBoolean , ConstraintDouble או ConstraintDOMString . אלה יכולים להיות ערך ספציפי (למשל, מספר, בוליאני או מחרוזת), טווח ( LongRange או DoubleRange עם ערך מינימלי ומקסימלי) או אובייקט עם הגדרה ideal או exact . עבור ערך ספציפי, הדפדפן ינסה לבחור משהו קרוב ככל האפשר. לטווח ישמש את הערך הטוב ביותר בטווח זה. כאשר צוין exact , יוחזרו רק זרמי מדיה התואמים בדיוק לאילוץ.

ליד

 // Camera with a resolution as close to 640x480 as possible
{
    "video": {
        "width": 640,
        "height": 480
    }
}
 

טווח

 // Camera with a resolution in the range 640x480 to 1024x768
{
    "video": {
        "width": {
            "min": 640,
            "max": 1024
        },
        "height": {
            "min": 480,
            "max": 768
        }
    }
}
 

מְדוּיָק

 // Camera with the exact resolution of 1024x768
{
    "video": {
        "width": {
            "exact": 1024
        },
        "height": {
            "exact": 768
        }
    }
}
 

כדי לקבוע את התצורה בפועל שיש לרצועה מסוימת של זרם מדיה, אנו יכולים להתקשר ל- MediaStreamTrack.getSettings() המחזירה את MediaTrackSettings המיושמים כעת.

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

הצגת מדיה

יישום שרוצה להיות מסוגל לבצע לכידת והקלטת מסך חייב להשתמש בממשק ה- API של המדיה לתצוגה. הפונקציה getDisplayMedia() (שהיא חלק מ- navigator.mediaDevices דומה ל- getUserMedia() ומשמשת למטרת פתיחת תוכן התצוגה (או חלק ממנו, למשל חלון). MediaStream המוחזר עובד את זהה לשימוש בעת getUserMedia() .

האילוצים עבור getDisplayMedia() שונים מאלו המשמשים לקלט וידאו או שמע רגיל.

 {
    video: {
        cursor: 'always' | 'motion' | 'never',
        displaySurface: 'application' | 'browser' | 'monitor' | 'window'
    }
}
 

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

נחלים ומסלולים

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

MediaStreamTrack

ל- MediaStreamTrack יש מאפיין kind שהוא audio או video , המציין את סוג המדיה שהוא מייצג. ניתן להשתיק כל רצועה על ידי החלפת הנכס enabled שלה. לרצועה יש remote מאפייני בוליאני שמציין אם הוא מקורו על ידי RTCPeerConnection ומגיע מעמית מרוחקת.