mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-14 05:14:54 +00:00
fix(electron): streaming audio encoding not working (#12231)
fix AF-2612 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Bug Fixes** - Improved handling of recording status updates to prevent unwanted side effects after closing the recording popup. - Enhanced error handling and logging for internal communication, ensuring errors are logged and do not disrupt the user experience. - Refined control flow for stream encoding to avoid unnecessary errors when encoders are closed. - **Refactor** - Updated popup window readiness and lifecycle management for more reliable behavior and clearer logging. - Adjusted recording state management to allow more precise control over status updates and emissions. - **Style** - Added additional logging for popup and recording operations to aid in troubleshooting and transparency. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -148,6 +148,7 @@ export function Recording() {
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
let removed = false;
|
||||
let currentStreamEncoder: OpusStreamEncoder | undefined;
|
||||
|
||||
apis?.recording
|
||||
@@ -161,6 +162,9 @@ export function Recording() {
|
||||
.catch(console.error);
|
||||
|
||||
const handleRecordingStatusChanged = async (status: Status) => {
|
||||
if (removed) {
|
||||
return;
|
||||
}
|
||||
if (status?.status === 'new') {
|
||||
track.popup.$.recordingBar.toggleRecordingBar({
|
||||
type: 'Meeting record',
|
||||
@@ -196,6 +200,7 @@ export function Recording() {
|
||||
});
|
||||
|
||||
return () => {
|
||||
removed = true;
|
||||
unsubscribe?.();
|
||||
currentStreamEncoder?.close();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user