Web audio playbackRate 解釋
`playbackRate` 屬性,用於 `<audio>` 和 `<video>` 元素,允許我們改變網頁音訊或影片的播放速度(速率)。本文將詳細解釋 playbackRate。
playbackRate 基礎知識
讓我們先來看一個 playbackRate 用法的簡短示例。
js
const audio = document.createElement("audio");
audio.setAttribute("src", "audio-file.mp3");
audio.playbackRate = 0.5;
在這裡,我們建立了一個 `<audio>` 元素,並將其 src 設定為我們選擇的檔案。接下來,我們將 playbackRate 設定為 0.5,這表示正常速度的一半(playbackRate 是應用於原始速率的乘數)。
一個完整的示例
讓我們先建立一個 `<video>` 元素,並在 HTML 中設定影片和播放速率控制元件。
html
<video id="myVideo" controls loop>
<source src="/shared-assets/videos/flower.mp4" type="video/mp4" />
<source src="/shared-assets/videos/flower.webm" type="video/webm" />
</video>
<form>
<input id="pbr" type="range" value="1" min="0.5" max="4" step="0.1" />
<p>Playback Rate <span id="currentPbr">1</span></p>
</form>
一些基本的 CSS
css
form {
font-family: monospace;
}
video {
width: 500px;
aspect-ratio: 16 / 9;
}
併為其應用一些 JavaScript。
js
const v = document.getElementById("myVideo");
const p = document.getElementById("pbr");
const c = document.getElementById("currentPbr");
p.addEventListener("input", () => {
c.textContent = p.value;
v.playbackRate = p.value;
});
最後,我們監聽 `<input>` 元素上的 input 事件,以便在播放速率控制元件更改時做出響應。
defaultPlaybackRate 和 ratechange
除了 playbackRate,我們還有一個 defaultPlaybackRate 屬性,它允許我們設定預設播放速率:即媒體重置到的播放速率;例如,當我們更改影片源時,或者(在某些瀏覽器中)生成 ended 事件時。
因此,defaultPlaybackRate 允許我們在播放媒體之前設定播放速率,而 playbackRate 允許我們在媒體播放期間更改它。
還有一個名為 ratechange 的事件,它在 playbackRate 每次更改時都會觸發。
注意
- 大多數瀏覽器會將播放速率限制在 0.5 到 4 之間,超出此範圍的音訊將停止播放,但影片會繼續靜音播放。對於大多數應用程式,建議將範圍限制在 0.5 到 4 之間。
- 當
playBackRate改變時,音訊軌的音調不會改變。 - 大多數瀏覽器目前不支援負值,負值表示媒體應該反向播放。
另見
- Hyperaudio 的播放速率測試
HTMLMediaElement:定義了playbackRate屬性的介面。