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 که MediaTrackSettings در حال حاضر اعمال شده است برمی گرداند.

همچنین می توانید محدودیت های یک مسیر از یک دستگاه رسانه ای را که ما باز کرده ایم ، با تماس با applyConstraints() در مسیر ، به روز کنید. با استفاده از این برنامه می توانید بدون نیاز به بستن جریان موجود ، مجدداً پیکربندی یک دستگاه رسانه را تنظیم کنید.

نمایش رسانه

برنامه ای که می خواهد ضبط و ضبط صفحه را انجام دهد باید از API Display Media استفاده کند. تابع getDisplayMedia() (که بخشی از navigator.mediaDevices شبیه به getUserMedia() است و برای هدف از باز کردن این مطالب از صفحه نمایش (و یا بخشی از آن، مانند یک پنجره استفاده می شود). در بازگشت MediaStream کار می کند همانند هنگام استفاده از getUserMedia() .

محدودیتهای مربوط به getDisplayMedia() با مواردی که برای ورودی معمولی فیلم یا صوتی استفاده می شود متفاوت است.

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

قطعه کد بالا نشان می دهد که محدودیت های ویژه ضبط صفحه چگونه کار می کند. توجه داشته باشید که این ممکن است توسط همه مرورگرهایی که پشتیبانی از رسانه نمایش دارند پشتیبانی نمی شوند.

جریان و آهنگ

یک MediaStream یک جریان از محتوای رسانه را تشکیل می دهد ، که شامل آهنگ های ( MediaStreamTrack ) صدا و تصویر است. با تماس با MediaStream.getTracks() ، که مجموعه ای از اشیاء MediaStreamTrack باز می گرداند ، می توانید تمام آهنگ ها را از MediaStream بازیابی کنید.

MediaStreamTrack

MediaStreamTrack یک kind دارد که audio یا video و نوع رسانه ای را نشان می دهد. می توان هر آهنگ را با ضامن کردن ویژگی enabled خود خاموش کرد. یک مسیر دارای یک ویژگی remote Boolean است که نشان می دهد که توسط RTCPeerConnection منبع گرفته شده است یا از یک همسال از راه دور در آمده است.