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:
pengx17
2025-03-20 12:46:14 +00:00
parent 8a5393ea50
commit fad49bb070
120 changed files with 5407 additions and 950 deletions
@@ -1,26 +1,26 @@
{
"ar": 96,
"ar": 95,
"ca": 4,
"da": 5,
"de": 96,
"el-GR": 96,
"el-GR": 95,
"en": 100,
"es-AR": 96,
"es-CL": 97,
"es": 96,
"fa": 96,
"fr": 96,
"es": 95,
"fa": 95,
"fr": 95,
"hi": 2,
"it-IT": 96,
"it": 1,
"ja": 96,
"ja": 95,
"ko": 60,
"pl": 96,
"pt-BR": 96,
"ru": 96,
"sv-SE": 96,
"uk": 96,
"pl": 95,
"pt-BR": 95,
"ru": 95,
"sv-SE": 95,
"uk": 95,
"ur": 2,
"zh-Hans": 96,
"zh-Hant": 96
"zh-Hans": 95,
"zh-Hant": 95
}
+17 -1
View File
@@ -5460,7 +5460,7 @@ export function useAFFiNEI18N(): {
*/
["com.affine.settings.workspace.experimental-features.enable-callout.name"](): string;
/**
* `Let your words stand out.`
* `Let your words stand out. This also include the callout in the transcription block.`
*/
["com.affine.settings.workspace.experimental-features.enable-callout.description"](): string;
/**
@@ -5567,6 +5567,14 @@ export function useAFFiNEI18N(): {
* `Once enabled, you can preview PDF in embed view.`
*/
["com.affine.settings.workspace.experimental-features.enable-pdf-embed-preview.description"](): string;
/**
* `Audio block`
*/
["com.affine.settings.workspace.experimental-features.enable-audio-block.name"](): string;
/**
* `Audio block allows you to play audio files globally and add notes to them.`
*/
["com.affine.settings.workspace.experimental-features.enable-audio-block.description"](): string;
/**
* `Editor RTL`
*/
@@ -7313,6 +7321,14 @@ export function useAFFiNEI18N(): {
* `Source`
*/
["com.affine.integration.readwise-prop.source"](): string;
/**
* `Notes`
*/
["com.affine.attachmentViewer.audio.notes"](): string;
/**
* `Transcribing`
*/
["com.affine.attachmentViewer.audio.transcribing"](): string;
/**
* `An internal error occurred.`
*/
+5 -1
View File
@@ -1361,7 +1361,7 @@
"com.affine.settings.workspace.experimental-features.enable-block-meta.name": "Block Meta",
"com.affine.settings.workspace.experimental-features.enable-block-meta.description": "Once enabled, all blocks will have created time, updated time, created by and updated by.",
"com.affine.settings.workspace.experimental-features.enable-callout.name": "Callout",
"com.affine.settings.workspace.experimental-features.enable-callout.description": "Let your words stand out.",
"com.affine.settings.workspace.experimental-features.enable-callout.description": "Let your words stand out. This also include the callout in the transcription block.",
"com.affine.settings.workspace.experimental-features.enable-embed-iframe-block.name": "Embed Iframe Block",
"com.affine.settings.workspace.experimental-features.enable-embed-iframe-block.description": "Enables Embed Iframe Block.",
"com.affine.settings.workspace.experimental-features.enable-emoji-folder-icon.name": "Emoji Folder Icon",
@@ -1388,6 +1388,8 @@
"com.affine.settings.workspace.experimental-features.enable-mobile-edgeless-editing.description": "Once enabled, users can edit edgeless canvas.",
"com.affine.settings.workspace.experimental-features.enable-pdf-embed-preview.name": "PDF embed preview",
"com.affine.settings.workspace.experimental-features.enable-pdf-embed-preview.description": "Once enabled, you can preview PDF in embed view.",
"com.affine.settings.workspace.experimental-features.enable-audio-block.name": "Audio block",
"com.affine.settings.workspace.experimental-features.enable-audio-block.description": "Audio block allows you to play audio files globally and add notes to them.",
"com.affine.settings.workspace.experimental-features.enable-editor-rtl.name": "Editor RTL",
"com.affine.settings.workspace.experimental-features.enable-editor-rtl.description": "Once enabled, the editor will be displayed in RTL mode.",
"com.affine.settings.workspace.not-owner": "Only an owner can edit the workspace avatar and name. Changes will be shown for everyone.",
@@ -1821,6 +1823,8 @@
"com.affine.integration.readwise.import.abort-notify-desc": "Import aborted, with {{finished}} highlights processed",
"com.affine.integration.readwise-prop.author": "Author",
"com.affine.integration.readwise-prop.source": "Source",
"com.affine.attachmentViewer.audio.notes": "Notes",
"com.affine.attachmentViewer.audio.transcribing": "Transcribing",
"error.INTERNAL_SERVER_ERROR": "An internal error occurred.",
"error.NETWORK_ERROR": "Network error.",
"error.TOO_MANY_REQUEST": "Too many requests.",