java - android音乐播放器获取上次播放列表

标签 java android service audio-player android-music-player

如果这个问题已经被问过,我很抱歉,我找不到关键字。 我目前正在构建一个音乐流媒体应用程序。我在播放时遇到问题。 所以为了记住下一首要播放的歌曲,我启动了音乐服务并发送了一个包含音乐的数组列表和需要播放的当前位置。

activity.stopService(new Intent(activity, MusicService.class));
activity.startService(new Intent(activity, MusicService.class).putExtra("list", data)
                        .putExtra("position", position));

我在整个应用程序中有一个小空间显示正在播放音乐。它运行良好,除非我重新启动手机,这意味着服务被破坏并且应用程序不记得上次播放的列表。

我目前正在考虑创建一个本地数据库来记住上次播放的列表。但我认为这不是最好的做法。有人可以给我一种实现我需要的方法吗?谢谢!

编辑: 我最终将 arraylist 转换为 JSON 并保存在 SharedPreference 中。下次我需要它时,我会将其转换回数组列表。

最佳答案

我自己为 android 创建了一个音乐播放器应用程序,我为保存最后播放的歌曲列表所做的操作如下 -

  1. 创建了一个 Hashmap,其中歌曲 ID 为键,列表中的位置为值
  2. 每当播放歌曲时更新此 Hashmap。
  3. 最后,将这个Hashmap保存在设备的内存中。

在内存中保存Hashmap的代码-

 File Listdirectory = cw.getDir("your direcotry", Context.MODE_PRIVATE);
    File ListPath = new File(Listdirectory,"file name");
    try {
        FileOutputStream fMap = new FileOutputStream(ListPath);
        ObjectOutputStream s = new ObjectOutputStream(fMap);
        s.writeObject(your hashmap);
        s.close();
    }
    catch (Exception e){

    }

关于java - android音乐播放器获取上次播放列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39121164/

相关文章:

android - 尽管使用 ellipsize 属性,但 TextView 不会在 TableLayout 中被截断

javascript - angularjs 在不同文件中为同一模块定义服务

java - 来自另一个包的bundle.update()失败

java - Android studio 3.1运行模拟器时无法加载aapt

WCF 和 Soap 返回 --uuid :{value} in body?

java - 按位运算符 (& | ^ ~) 的优先级是什么

java - 管理面板中的静态资源预览

java - Table.getItem 仅在 RHEL6 中返回错误的项目

java - jsp和jsi有什么区别?

java - Android 原生 UPnP 服务发现