音乐管理报错

音乐导入、歌单管理过程中可能出现的报错、解决方案及说明

本文档汇总 AstroBox 在音乐导入、歌单创建/编辑/删除等流程中可能向用户展示的报错信息。常见报错与解决方案已置顶,完整清单见文末。


常见报错与解决方案

device.connect.noDevice(无已连接设备)

报错原文

device.connect.noDevice

触发场景:音乐导入/上传开始时没有已连接的设备,任务卡片也会显示此错误。

解决方案:先连接设备再导入音乐。

源码位置logic/queue/musichelper.ts:120

Music file is empty

报错原文

Music file is empty

触发场景:上传的音乐文件内容为空(0 字节或读取失败)。

解决方案:确认音乐文件未损坏且大小正常,重新选择文件。

源码位置frontapi/device/music.rs:271

Songlist operation failed(歌单操作失败)

报错原文

Songlist operation failed: {code:?}

触发场景:设备端歌单操作(添加/移除歌曲等)返回失败状态码。

解决方案:检查设备连接状态,或稍后重试;如反复失败重启设备。

源码位置frontapi/device/music.rs:309 / frontapi/device/music.rs:453

Device rejected the song removal request

报错原文

Device rejected the song removal request

触发场景:设备拒绝了歌曲移除请求(常见于存储异常或设备忙)。

解决方案:检查设备存储空间,或重启设备后重试。

源码位置frontapi/device/music.rs:252

device.music.songlistLimitReached(歌单数量达上限)

报错原文

device.music.songlistLimitReached

触发场景:创建歌单时数量已达到设备上限。

解决方案:删除不必要的歌单后再创建。

源码位置pages/device/music.tsx:297


完整报错清单

一、Toast 弹窗报错

音乐导入

触发位置消息 Key说明
pages/device/music.tsx:120device.music.importQueued音乐导入入队成功(count > 0)
pages/device/music.tsx:123error.message / String(error)音乐导入失败
pages/device/music.tsx:277device.music.importQueuedMusicContent 导入入队成功
pages/device/music.tsx:280error.message / String(error)MusicContent 导入失败

歌单管理

触发位置消息 Key说明
pages/device/music.tsx:306device.music.songlistCreated歌单创建成功
pages/device/music.tsx:322device.music.songlistRenamed歌单重命名成功
pages/device/music.tsx:338device.music.songlistDeleted歌单删除成功
pages/device/music.tsx:357device.music.songlistUpdated歌曲加入歌单成功
pages/device/music.tsx:378device.music.songRemovedFromSonglist歌曲从歌单移除成功
pages/device/music.tsx:402device.music.songDeleted歌曲从设备删除成功

歌单排序与验证

触发位置消息 Key说明
pages/device/music.tsx:427device.music.sortSaved歌单排序保存成功
pages/device/music.tsx:431error.message / String(error)歌单排序保存失败
pages/device/music.tsx:925device.music.songlistNameRequired歌单名为空
pages/device/music.tsx:931error.message / String(error)创建/重命名歌单失败
pages/device/music.tsx:1005device.music.selectSongsRequired未选择歌曲
pages/device/music.tsx:1011error.message / String(error)歌曲选择提交失败

其他错误

触发位置消息说明
pages/device/music.tsx:220error.message / String(error)加载歌单成员失败
pages/device/music.tsx:297device.music.songlistLimitReached歌单数量达到上限(throw 后被 catch)

二、队列内嵌报错(progressDesc)

taskList.ts 捕获音乐上传 action 异常后写入任务卡片:

来源典型错误消息触发场景
musichelper.tsdevice.connect.noDevice音乐上传开始时无设备
musichelper.tsdevice.music.queuePreparing准备上传中
musichelper.tsdevice.music.queueUploading + 进度上传进行中
musichelper.tsdevice.music.queueDone上传完成
musichelper.tsdevice.music.queueDuplicated歌曲已存在

三、Rust 后端返回错误

音乐存储查询

位置错误消息触发条件
frontapi/device/music.rs:85Device storage response not received: {err:?}音乐存储查询失败
frontapi/device/music.rs:91Device storage request timed out音乐存储查询超时

歌曲操作

位置错误消息触发条件
frontapi/device/music.rs:252Device rejected the song removal request歌曲移除被拒绝
frontapi/device/music.rs:271Music file is empty音乐文件为空
frontapi/device/music.rs:309Songlist operation failed: {code:?}歌单操作失败
frontapi/device/music.rs:392{err:#}歌曲摘要错误
frontapi/device/music.rs:393Song summary response not received: {err:?}歌曲摘要响应未收到
frontapi/device/music.rs:394Song summary request timed out歌曲摘要请求超时
frontapi/device/music.rs:413传播内部 err歌曲添加失败
frontapi/device/music.rs:453Songlist operation failed: {code:?}歌单操作失败
frontapi/device/music.rs:545Music file data is missing音乐数据缺失

标签响应

位置错误消息触发条件
frontapi/device/music.rs:578{err:#}标签响应错误
frontapi/device/music.rs:581{label} response not received: {err:?}标签响应未收到
frontapi/device/music.rs:585{label} request timed out标签请求超时

四、WASM / 逻辑层抛错

位置错误消息触发条件
logic/queue/musichelper.ts:120device.connect.noDevice音乐上传时无设备
ipc/wasmBridge.ts:99thirdpartyapp_install_by_url is not implemented for wasm runtimeWASM 不支持 URL 安装
ipc/wasmBridge.ts:101thirdpartyapp_stop_install_by_url is not implemented for wasm runtimeWASM 不支持停止 URL 安装
ipc/wasmBridge.ts:103thirdpartyapp_cancel_install_by_url is not implemented for wasm runtimeWASM 不支持取消 URL 安装

五、其他排查建议

报错建议操作
device.music.songlistNameRequired确保输入了歌单名称
device.music.selectSongsRequired至少选择一首歌曲
Music file data is missing确认文件已成功选择,重新选择文件

大纲