【问题标题】:Continue playing audio from the time where it was stopped从停止时继续播放音频
【发布时间】:2015-02-06 21:30:14
【问题描述】:

我正在构建一个音频播放器,用户可以在其中从 ListView 中选择他想听的歌曲。在他点击一首歌曲后,音频播放器开始播放该歌曲。

音频文件不存储在本地,它们是从一些在线音频库中获取的。用户打开歌曲列表后,会收到很多这样的 url:

http://audiolibrary.com/user/1/77.mp3
http://audiolibrary.com/user/1/567.mp3
http://audiolibrary.com/user/1/34.mp3

如您所见,每首歌曲都使用唯一的 ID 进行标识。临时下载那首歌并播放音频很容易,而且效果很好。我想要完成的事情是这样的:

  1. 用户点击列表视图中的歌曲 1,歌曲 1 开始播放
  2. 在复制过程中,用户认为歌曲 1 已受够并切换到歌曲 2
  3. 他在 song2 还没有完成的时候关闭了应用程序
  4. 下次他打开应用时,如果他点击歌曲 1 或歌曲 2,则从停止收听歌曲 1 或歌曲 2 的地方开始再现

如何在 Android 上高效地完成类似的事情?我应该为这种情况创建一个SQLite 数据库,使用SharedPreferences 还是别的什么?你通常如何处理类似的情况?

谢谢你:)

【问题讨论】:

    标签: android audio android-sqlite


    【解决方案1】:

    您需要永久存储他按下暂停的时间。用于此的选项是数据库、共享首选项、Web 服务或文件。各有利弊。

    数据库专家:如果需要,可以使用其他信息轻松扩展,没有困难的解析代码

    数据库缺点:对于相当简单的数据量有很多设置代码,对第 3 方代码的额外依赖

    共享偏好专家:设置和使用最少的代码

    共享偏好缺点:并非真正适用于动态字符串名称,解析速度慢,性能会随着字符串数量的减少而下降,不易存储额外数据。

    网络服务专业人士:可跨设备/平台使用

    webservice 缺点:需要服务器和大部分代码,需要互联网连接

    自定义文件格式专家:完全针对您的需求进行了优化,如果您设计好格式,则可以轻松扩展

    自定义文件格式缺点:所有自定义代码,您必须编写所有代码。

    选择最适合你的那个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多