HTMLMediaElement: phương thức setSinkId()
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Phương thức setSinkId() của giao diện HTMLMediaElement đặt ID của thiết bị âm thanh sẽ sử dụng cho đầu ra và trả về Promise.
Điều này chỉ hoạt động khi ứng dụng được phép sử dụng thiết bị được chỉ định. Để biết thêm thông tin, hãy xem security requirements bên dưới.
Cú pháp
js
setSinkId(sinkId)
Tham số
sinkId- :
MediaDeviceInfo.deviceIdcủa thiết bị đầu ra âm thanh.
Giá trị trả về
Ngoại lệ
NotAllowedErrorDOMException- : Được trả về nếu
speaker-selectionPermissions Policy được sử dụng để chặn việc sử dụng đầu ra âm thanh. NotFoundErrorDOMException- : Được trả về nếu
deviceIdkhông khớp với bất kỳ thiết bị đầu ra âm thanh nào. AbortErrorDOMException- : Được trả về nếu việc chuyển thiết bị đầu ra âm thanh sang thiết bị âm thanh mới không thành công.
Yêu cầu bảo mật
Quyền truy cập vào API phải tuân theo các ràng buộc sau:
- Phương thức này phải được gọi theo dạng secure context.
- Quyền truy cập có thể được kiểm soát bởi
speaker-selectionHTTP Permission Policy. - Cần có sự cho phép của người dùng để truy cập vào một thiết bị không mặc định.
Người dùng cấp quyền bằng cách chọn thiết bị được liên kết với ID trong lời nhắc được hiển thị bởi
MediaDevices.selectAudioOutput().
Ví dụ
Ví dụ này cho thấy cách chọn thiết bị đầu ra âm thanh từ mảng được trả về bởi MediaDevices.enumerateDevices() và đặt thiết bị này làm thiết bị thu âm thanh.
Lưu ý rằng kết quả của enumerateDevices() chỉ bao gồm các thiết bị không cần có sự cho phép của người dùng hoặc đã được cấp.
js
const devices = await navigator.mediaDevices.enumerateDevices();
const audioDevice = devices.find((device) => device.kind === "audiooutput");
const audio = document.createElement("audio");
await audio.setSinkId(audioDevice.deviceId);
console.log(`Audio is being output on ${audio.sinkId}`);
Đặc tả kỹ thuật
| Specification |
|---|
| Audio Output Devices API> # dom-htmlmediaelement-setsinkid> |