Sourced from asciinema-player's releases.
3.12.1
This version includes additional fix for seeking past the end of recording and restarting the playback.
3.12.0
Notable changes:
- Live audio stream support for WebSocket sources (see below)
- Improved adaptive buffer algorithm for WebSocket sources (see below)
- Fixed keyboard shortcuts issue (stopped working) caused by the new mute/unmute icon
- Fixed seeking after playback ended (#282)
Live audio playback
The
audioUrloption, introduced in v3.11, can now also be used with live (WebSocket) sources:AsciinemaPlayer.create("ws://example.com/ws/stream", document.getElementById("demo"), { audioUrl: "http://example.com/icecast/stream.ogg" });The URL should be a live audio source - either a direct HTTP audio stream (.mp3, .aac, .ogg, etc) such as Icecast/Shoutcast endpoint, or HLS playlist (.m3u8).
Note that it's not recommended to use
autoplay: trueoption together withaudioUrl- browsers often require explicit user activity (click, tap) to enable sound, which in the player's case would be starting the playback by clicking on the play button. Without user click theautoplaywill start the playback but the sound likely won't be there.Also, for the audio playback to work a server that handles the audio URL (e.g. Icecast) must be configured to allow CORS requests from the page (URL) that hosts the player.
New adaptive buffering
The WebSocket driver uses adaptive buffer (expressed in time) to ensure smooth, stutter free playback of live sessions with minimal latency.
The previous algorithm used a moving average over a sliding window of N recent latencies. It did ok-ish job, but given the sparse nature of the event stream (no constant rate) it turned out to be not ideal. Here's how it performed. Red dots are measured latencies, green line is effective buffer time:
The new algorithm uses time based EMA (exponential moving average), which is much more relevant for sparse events, resulting in more stable and overall lower buffer size when applied to a wide spectrum of terminal activities (here applied to the same input latencies as the one above):
3.11.1
This release brings additional fixes for audio loading in Safari.
3.11.0
Notable changes:
- Synced audio playback (see below)
- JS bundle size reduced by 43 KB (202 KB -> 159 KB) - it's now 78% of the previous release (v3.10) size
- WebSocket driver now uses jitter for exponential backoff calculation when reconnecting
- WebSocket driver can play live sessions encoded in asciicast v3 compatible format
... (truncated)
1072fee
Bump versiondb715d0
Fix replay after double seek-forward at the end of the recordingca8fe03
Update links to the latest asciicast format version984db33
Bump version45e02fa
Fix seeking after playback ended2fe3da7
Improve adaptive buffer time algorithm589cd52
Fix keyboard focus issue caused by the mute/unmute icond00a897
Audio support for Websocket driver44d97ac
Whitespace8c22181
Add test for player initialization and playback start