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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions