RTCDataChannel: bufferedamountlow 事件
當 RTCDataChannel 的出站資料傳輸緩衝區中當前位元組數(bufferedAmount)從高於或等於 bufferedAmountLowThreshold 中指定的閾值下降到低於或等於該閾值時,會向 RTCDataChannel 傳送一個 bufferedamountlow 事件。
此事件不可取消,也不會冒泡。
語法
在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。
js
addEventListener("bufferedamountlow", (event) => { })
onbufferedamountlow = (event) => { }
事件型別
一個通用的 Event。
示例
此示例設定了 bufferedamountlow 的處理程式,以便在資料通道的緩衝區下降到低於我們設定的 65536 位元組(即 64kB)的 bufferedAmountLowThreshold 指定的位元組數時,請求更多資料。換句話說,我們將嘗試在緩衝區中至少保留 64kB 的資料,並一次從源讀取 64kB。
js
let pc = new RTCPeerConnection();
let dc = pc.createDataChannel("SendFile");
// Replace with your own source object, such as a file handle
let source = null;
dc.bufferedAmountLowThreshold = 65536;
pc.addEventListener("bufferedamountlow", (ev) => {
if (source.position <= source.length) {
dc.send(source.readFile(65536));
}
});
建立 RTCPeerConnection 後,呼叫 RTCPeerConnection.createDataChannel() 來建立資料通道。然後,為 bufferedamountlow 建立一個監聽器,以便在傳入資料緩衝區的位元組數低於 65536 位元組時,隨時重新填充緩衝區。
您也可以使用事件處理屬性 onbufferedamountlow 來設定 bufferedamountlow 的監聽器。
js
pc.onbufferedamountlow = (ev) => {
if (source.position <= source.length) {
dc.send(source.readFile(65536));
}
};
規範
| 規範 |
|---|
| WebRTC:瀏覽器中的即時通訊 # event-datachannel-bufferedamountlow |
| WebRTC:瀏覽器中的即時通訊 # dom-rtcdatachannel-onbufferedamountlow |
瀏覽器相容性
載入中…