音乐管理报错
音乐导入、歌单管理过程中可能出现的报错、解决方案及说明
本文档汇总 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:120 | device.music.importQueued | 音乐导入入队成功(count > 0) |
pages/device/music.tsx:123 | error.message / String(error) | 音乐导入失败 |
pages/device/music.tsx:277 | device.music.importQueued | MusicContent 导入入队成功 |
pages/device/music.tsx:280 | error.message / String(error) | MusicContent 导入失败 |
歌单管理
| 触发位置 | 消息 Key | 说明 |
|---|---|---|
pages/device/music.tsx:306 | device.music.songlistCreated | 歌单创建成功 |
pages/device/music.tsx:322 | device.music.songlistRenamed | 歌单重命名成功 |
pages/device/music.tsx:338 | device.music.songlistDeleted | 歌单删除成功 |
pages/device/music.tsx:357 | device.music.songlistUpdated | 歌曲加入歌单成功 |
pages/device/music.tsx:378 | device.music.songRemovedFromSonglist | 歌曲从歌单移除成功 |
pages/device/music.tsx:402 | device.music.songDeleted | 歌曲从设备删除成功 |
歌单排序与验证
| 触发位置 | 消息 Key | 说明 |
|---|---|---|
pages/device/music.tsx:427 | device.music.sortSaved | 歌单排序保存成功 |
pages/device/music.tsx:431 | error.message / String(error) | 歌单排序保存失败 |
pages/device/music.tsx:925 | device.music.songlistNameRequired | 歌单名为空 |
pages/device/music.tsx:931 | error.message / String(error) | 创建/重命名歌单失败 |
pages/device/music.tsx:1005 | device.music.selectSongsRequired | 未选择歌曲 |
pages/device/music.tsx:1011 | error.message / String(error) | 歌曲选择提交失败 |
其他错误
| 触发位置 | 消息 | 说明 |
|---|---|---|
pages/device/music.tsx:220 | error.message / String(error) | 加载歌单成员失败 |
pages/device/music.tsx:297 | device.music.songlistLimitReached | 歌单数量达到上限(throw 后被 catch) |
二、队列内嵌报错(progressDesc)
taskList.ts 捕获音乐上传 action 异常后写入任务卡片:
| 来源 | 典型错误消息 | 触发场景 |
|---|---|---|
musichelper.ts | device.connect.noDevice | 音乐上传开始时无设备 |
musichelper.ts | device.music.queuePreparing | 准备上传中 |
musichelper.ts | device.music.queueUploading + 进度 | 上传进行中 |
musichelper.ts | device.music.queueDone | 上传完成 |
musichelper.ts | device.music.queueDuplicated | 歌曲已存在 |
三、Rust 后端返回错误
音乐存储查询
| 位置 | 错误消息 | 触发条件 |
|---|---|---|
frontapi/device/music.rs:85 | Device storage response not received: {err:?} | 音乐存储查询失败 |
frontapi/device/music.rs:91 | Device storage request timed out | 音乐存储查询超时 |
歌曲操作
| 位置 | 错误消息 | 触发条件 |
|---|---|---|
frontapi/device/music.rs:252 | Device rejected the song removal request | 歌曲移除被拒绝 |
frontapi/device/music.rs:271 | Music file is empty | 音乐文件为空 |
frontapi/device/music.rs:309 | Songlist operation failed: {code:?} | 歌单操作失败 |
frontapi/device/music.rs:392 | {err:#} | 歌曲摘要错误 |
frontapi/device/music.rs:393 | Song summary response not received: {err:?} | 歌曲摘要响应未收到 |
frontapi/device/music.rs:394 | Song summary request timed out | 歌曲摘要请求超时 |
frontapi/device/music.rs:413 | 传播内部 err | 歌曲添加失败 |
frontapi/device/music.rs:453 | Songlist operation failed: {code:?} | 歌单操作失败 |
frontapi/device/music.rs:545 | Music 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:120 | device.connect.noDevice | 音乐上传时无设备 |
ipc/wasmBridge.ts:99 | thirdpartyapp_install_by_url is not implemented for wasm runtime | WASM 不支持 URL 安装 |
ipc/wasmBridge.ts:101 | thirdpartyapp_stop_install_by_url is not implemented for wasm runtime | WASM 不支持停止 URL 安装 |
ipc/wasmBridge.ts:103 | thirdpartyapp_cancel_install_by_url is not implemented for wasm runtime | WASM 不支持取消 URL 安装 |
五、其他排查建议
| 报错 | 建议操作 |
|---|---|
device.music.songlistNameRequired | 确保输入了歌单名称 |
device.music.selectSongsRequired | 至少选择一首歌曲 |
Music file data is missing | 确认文件已成功选择,重新选择文件 |