【问题标题】:Play mp3 file while downloading?下载时播放 mp3 文件?
【发布时间】:2011-05-31 00:27:14
【问题描述】:

我希望我的 Android 应用程序从 Internet 下载一个 mp3 文件,并在下载时像流式传输一样播放它。这甚至可能吗?我该怎么做呢?

本质上,我希望用户能够立即收听文件,但即使他停止收听,也让它继续下载到 SD 卡,所以整个 mp3 文件最终都会在 SD 卡上。

【问题讨论】:

  • 从服务器流式传输音频文件时发生的情况不一样吗?
  • 我相信他希望文件在流式传输的同时保存到 SD 卡中。

标签: android streaming mp3 audio-streaming


【解决方案1】:

对于 Android 设备 2.3 及更早版本,您需要完全删除 Content-Disposition 响应标头。这将导致浏览器调用用户偏好的音频播放器。

在这里试试:http://declinefm.com/archives 选择您选择的存档,然后点击下载链接。

对于现代 Android 设备,您无需移除 CD 标头。

我在这里写了一个教程,灵感来自你的帖子:

http://rudd-o.com/linux-and-free-software/how-to-properly-stream-audio-from-your-plone-varnish-site

享受吧!

【讨论】:

    【解决方案2】:

    我不相信 android 提供了您所要求的功能。但我知道有一种解决方法可能会奏效。

    http://code.google.com/p/android/issues/detail?id=739 是一张公开的票,有很多与您所描述的内容相关的讨论。在5th commentseeingwithsound 说

    但是,作为一种解决方法,我接下来将合成数据流式传输到临时文件,就像您考虑将 HTTP 流传输到文件一样,以便随后通过 MediaPlayer 播放这些文件。 [...] 看起来您的问题可能是通过对 MediaPlayer 的缓冲进行更多控制来解决的,因为您实际上是通过某种缓存机制(缓冲区)连接流...

    说实话,MediaPlayer 玩的不多,所以我不能给你太多关于如何“控制 MediaPlayer 的缓冲”的细节。但假设您可以让它工作,我建议您将 .mp3 文件下载到 (a) 临时文件,然后您可以将 MediaPlayer 指向。

    抱歉,这个答案太含糊了,但您正在进入之前很少有人尝试过的领域。祝你好运。

    【讨论】:

      【解决方案3】:

      RTSP 还是 HTTP?如果是 HTTP,您可以尝试删除 Content-Length 标头,该标头在某些移动设备上将允许立即调用播放器。听起来好像您正在通过本地应用程序抽取数据。你现在玩的怎么样?

      【讨论】:

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