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 改變時,音訊軌的音調不會改變。
  • 大多數瀏覽器目前不支援負值,負值表示媒體應該反向播放。

另見