mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-14 21:27:20 +00:00
feat(editor): audio block (#10947)
AudioMedia entity for loading & controlling a single audio media AudioMediaManagerService: Global audio state synchronization across tabs AudioAttachmentService + AudioAttachmentBlock for manipulating AttachmentBlock in affine - e.g., filling transcription (using mock endpoint for now) Added AudioBlock + AudioPlayer for rendering audio block in affine (new transcription block whose renderer is provided in affine) fix AF-2292 fix AF-2337
This commit is contained in:
@@ -12,7 +12,7 @@ function setupRendererConnection(rendererPort: Electron.MessagePortMain) {
|
||||
try {
|
||||
const start = performance.now();
|
||||
const result = await handler(...args);
|
||||
logger.info(
|
||||
logger.debug(
|
||||
'[async-api]',
|
||||
`${namespace}.${name}`,
|
||||
args.filter(
|
||||
@@ -74,7 +74,7 @@ function main() {
|
||||
if (e.data.channel === 'renderer-connect' && e.ports.length === 1) {
|
||||
const rendererPort = e.ports[0];
|
||||
setupRendererConnection(rendererPort);
|
||||
logger.info('[helper] renderer connected');
|
||||
logger.debug('[helper] renderer connected');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -3,3 +3,4 @@ import log from 'electron-log/main';
|
||||
export const logger = log.scope('helper');
|
||||
|
||||
log.transports.file.level = 'info';
|
||||
log.transports.console.level = 'info';
|
||||
|
||||
@@ -2,7 +2,6 @@ import { AsyncCall } from 'async-call-rpc';
|
||||
|
||||
import type { HelperToMain, MainToHelper } from '../shared/type';
|
||||
import { exposed } from './provide';
|
||||
import { encodeToMp3 } from './recording/encode';
|
||||
|
||||
const helperToMainServer: HelperToMain = {
|
||||
getMeta: () => {
|
||||
@@ -11,8 +10,6 @@ const helperToMainServer: HelperToMain = {
|
||||
}
|
||||
return exposed;
|
||||
},
|
||||
// allow main process encode audio samples to mp3 buffer (because it is slow and blocking)
|
||||
encodeToMp3,
|
||||
};
|
||||
|
||||
export const mainRPC = AsyncCall<MainToHelper>(helperToMainServer, {
|
||||
@@ -33,4 +30,5 @@ export const mainRPC = AsyncCall<MainToHelper>(helperToMainServer, {
|
||||
process.parentPort.postMessage(data);
|
||||
},
|
||||
},
|
||||
log: false,
|
||||
});
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
import { Mp3Encoder } from '@affine/native';
|
||||
|
||||
// encode audio samples to mp3 buffer
|
||||
export function encodeToMp3(
|
||||
samples: Float32Array,
|
||||
opts: {
|
||||
channels?: number;
|
||||
sampleRate?: number;
|
||||
} = {}
|
||||
): Uint8Array {
|
||||
const mp3Encoder = new Mp3Encoder({
|
||||
channels: opts.channels ?? 2,
|
||||
sampleRate: opts.sampleRate ?? 44100,
|
||||
});
|
||||
return mp3Encoder.encode(samples);
|
||||
}
|
||||
Reference in New Issue
Block a user