Skip to content

bug : ( 安卓端Player导入歌曲到应用私有目录后,删除文件夹/歌单不会删对应文件 #46

Description

@Shomi-FJS

安卓端通过“导入本地歌曲”导入音频文件后,应用会将 content:// 文件复制到应用私有目录 music_cache 中。
但后续删除歌单、删除歌曲引用或解除文件夹关联时,只删除了数据库中的歌单/引用关系,并不会清理对应的歌曲记录与 music_cache 缓存文件。

这会导致用户认为歌曲已经删除,但应用私有目录中仍保留音频文件,占用存储空间。

版本号 AMLL.Player_0.0.1+1098_arm64.apk

当前行为大致链路

flowchart TD
    A[移动端选择本地歌曲 content://] --> B[resolveContentUri]
    B --> C[复制音频到 AppData/music_cache]
    C --> D[写入 db.songs]
    D --> E[写入 playlist.songIds]

    F[用户删除歌单/移除歌曲] --> G[只删除 db.playlists 或 playlist.songIds]
    G --> H[db.songs 记录仍保留]
    G --> I[music_cache 文件仍保留]
    H --> J[形成无人引用歌曲数据]
    I --> K[继续占用应用存储空间]

    style C fill:#fff3e0,color:#e65100
    style H fill:#ffcdd2,color:#b71c1c
    style I fill:#ffcdd2,color:#b71c1c
    style K fill:#ffcdd2,color:#b71c1c
Loading

当再次导入歌曲时,无法有概率无法导入,控制台提示

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions