fix(recording): improve recording capture quality and align preview button loading state
This commit is contained in:
@@ -1,5 +1,11 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2026-04-12 - 3.8.5 - fix(recording)
|
||||||
|
improve recording capture quality and align preview button loading state
|
||||||
|
|
||||||
|
- request 60fps screen capture and increase recorder bitrate to 8 Mbps for smoother, higher-quality videos
|
||||||
|
- update preview button layout to use inline flex alignment so spinner and label stay properly aligned
|
||||||
|
|
||||||
## 2026-04-12 - 3.8.4 - fix(repo)
|
## 2026-04-12 - 3.8.4 - fix(repo)
|
||||||
no changes to commit
|
no changes to commit
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@design.estate/dees-wcctools',
|
name: '@design.estate/dees-wcctools',
|
||||||
version: '3.8.4',
|
version: '3.8.5',
|
||||||
description: 'A set of web component tools for creating element catalogues, enabling the structured development and documentation of custom elements and pages.'
|
description: 'A set of web component tools for creating element catalogues, enabling the structured development and documentation of custom elements and pages.'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -383,6 +383,9 @@ export class WccRecordingPanel extends DeesElement {
|
|||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: all 0.15s ease;
|
transition: all 0.15s ease;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.preview-btn.secondary {
|
.preview-btn.secondary {
|
||||||
@@ -549,7 +552,7 @@ export class WccRecordingPanel extends DeesElement {
|
|||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
border-top-color: white;
|
border-top-color: white;
|
||||||
animation: spin 0.8s linear infinite;
|
animation: spin 0.8s linear infinite;
|
||||||
margin-right: 0.5rem;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes spin {
|
@keyframes spin {
|
||||||
|
|||||||
@@ -150,7 +150,8 @@ export class RecorderService {
|
|||||||
// Get video stream based on mode
|
// Get video stream based on mode
|
||||||
const displayMediaOptions: DisplayMediaStreamOptions = {
|
const displayMediaOptions: DisplayMediaStreamOptions = {
|
||||||
video: {
|
video: {
|
||||||
displaySurface: options.mode === 'viewport' ? 'browser' : 'monitor'
|
displaySurface: options.mode === 'viewport' ? 'browser' : 'monitor',
|
||||||
|
frameRate: { ideal: 60 },
|
||||||
} as MediaTrackConstraints,
|
} as MediaTrackConstraints,
|
||||||
audio: false
|
audio: false
|
||||||
};
|
};
|
||||||
@@ -207,7 +208,10 @@ export class RecorderService {
|
|||||||
? 'video/webm;codecs=vp9'
|
? 'video/webm;codecs=vp9'
|
||||||
: 'video/webm';
|
: 'video/webm';
|
||||||
|
|
||||||
this.mediaRecorder = new MediaRecorder(combinedStream, { mimeType });
|
this.mediaRecorder = new MediaRecorder(combinedStream, {
|
||||||
|
mimeType,
|
||||||
|
videoBitsPerSecond: 8_000_000, // 8 Mbps for smooth, high-quality capture
|
||||||
|
});
|
||||||
this.recordedChunks = [];
|
this.recordedChunks = [];
|
||||||
|
|
||||||
this.mediaRecorder.ondataavailable = (e) => {
|
this.mediaRecorder.ondataavailable = (e) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user