Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Nắm bắt và hạn chế phương tiện truyền thông

Phần phương tiện của WebRTC bao gồm cách truy cập phần cứng có khả năng quay video và âm thanh, chẳng hạn như máy ảnh và micrô, cũng như cách các luồng phương tiện hoạt động. Nó cũng bao gồm phương tiện hiển thị, đó là cách một ứng dụng có thể chụp màn hình.

Thiết bị đa phương tiện

Tất cả máy ảnh và micrô được trình duyệt hỗ trợ đều được truy cập và quản lý thông qua đối tượng navigator.mediaDevices . Các ứng dụng có thể truy xuất danh sách các thiết bị được kết nối hiện tại và cũng lắng nghe các thay đổi, vì nhiều máy ảnh và microhpones kết nối qua USB và có thể được kết nối và ngắt kết nối trong vòng đời của ứng dụng. Vì trạng thái của thiết bị đa phương tiện có thể thay đổi bất cứ lúc nào, nên các ứng dụng nên đăng ký thay đổi thiết bị để xử lý đúng các thay đổi.

Những ràng buộc

Khi truy cập các thiết bị đa phương tiện, cách tốt nhất là cung cấp các ràng buộc chi tiết nhất có thể. Mặc dù có thể mở camera và micrô mặc định bằng một ràng buộc đơn giản, nhưng nó có thể cung cấp một luồng phương tiện không phải là tối ưu nhất cho ứng dụng.

Các ràng buộc cụ thể được xác định trong một đối tượng MediaTrackConstraint , một cho âm thanh và một cho video. Các thuộc tính trong đối tượng này có kiểu ConstraintLong , ConstraintBoolean , ConstraintDouble hoặc ConstraintDOMString . Đây có thể là một giá trị cụ thể (ví dụ: số, boolean hoặc chuỗi), phạm vi ( LongRange hoặc DoubleRange với giá trị tối thiểu và tối đa) hoặc một đối tượng có định nghĩa ideal hoặc exact . Đối với một giá trị cụ thể, trình duyệt sẽ cố gắng chọn một cái gì đó càng gần càng tốt. Đối với một phạm vi, giá trị tốt nhất trong phạm vi đó sẽ được sử dụng. Khi exact được chỉ định, chỉ các luồng phương tiện phù hợp chính xác với ràng buộc đó sẽ được trả về.

Ở gần

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

Phạm vi

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

Chính xác

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

Để xác định cấu hình thực tế mà một bản nhạc nhất định của luồng phương tiện có, chúng ta có thể gọi MediaStreamTrack.getSettings() trả về MediaTrackSettings hiện đang được áp dụng.

Cũng có thể cập nhật các ràng buộc của một bản nhạc từ một thiết bị đa phương tiện mà chúng tôi đã mở, bằng cách gọi applyConstraints() trên bản nhạc. Điều này cho phép ứng dụng định cấu hình lại thiết bị đa phương tiện mà không cần phải đóng luồng hiện tại.

Hiển thị phương tiện truyền thông

Một ứng dụng muốn có thể thực hiện chụp và ghi màn hình phải sử dụng API phương tiện hiển thị. Chức năng getDisplayMedia() (đó là một phần của navigator.mediaDevices cũng tương tự như getUserMedia() và được sử dụng với mục đích mở nội dung của màn hình hiển thị (hoặc một phần của nó, chẳng hạn như một cửa sổ). Các trở MediaStream công trình giống như khi sử dụng getUserMedia() .

Các ràng buộc cho getDisplayMedia() khác với các ràng buộc được sử dụng cho đầu vào video hoặc âm thanh thông thường.

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

Đoạn mã ở trên cho thấy các ràng buộc đặc biệt đối với ghi màn hình hoạt động như thế nào. Lưu ý rằng những điều này có thể không được hỗ trợ bởi tất cả các trình duyệt có hỗ trợ phương tiện hiển thị.

Luồng và bản nhạc

MediaStream đại diện cho một luồng nội dung đa phương tiện, bao gồm các bản nhạc ( MediaStreamTrack ) của âm thanh và video. Bạn có thể truy xuất tất cả các bản nhạc từ MediaStream bằng cách gọi MediaStream.getTracks() , trả về một mảng các đối tượng MediaStreamTrack .

MediaStreamTrack

MediaStreamTrack có một kind tính kindaudio hoặc video , cho biết loại phương tiện mà nó đại diện. Mỗi bản nhạc có thể được tắt tiếng bằng cách chuyển đổi thuộc tính enabled của nó. Một bản nhạc có một remote tính Boolean cho biết nó có nguồn gốc từ RTCPeerConnection và đến từ một thiết bị ngang hàng từ xa.