我在 Android 上使用 MediaPlayer 流式传输音频。
当设备从 Wi-Fi 移动到蜂窝网络或从 Wi-Fi 移动到移动网络时,MediaPlayer 停止播放。
缓冲区中通常有几秒钟的音频,因此播放不会立即停止。
理想情况下,我想获取流以进行不间断播放,但我不知道该怎么做。
我正在处理托管在服务器上的 mp3 文件和直播流。
最佳答案
从服务器的角度来看,将网络模式从 WiFi 更改为 3G(反之亦然),看起来像是来自单独 IP(客户端)的全新连接。
如果您下载的服务器不支持跟踪流(例如秒数、序列、字节)(与媒体服务器不同),它将不得不再次从 0 字节开始提供您的 mp3。
如果您的 URL 指向位于标准 HTTP 服务器上的 MP3 文件,您的情况将是预期的。您应该考虑使用媒体流服务器,这样您就可以根据自己的选择恢复下载/流式传输。当您收到连接丢失/恢复的 Intent 时,您可以将您的媒体播放器指向新的 URL,并在 URL 中包含文件位置(例如,seconds=19,bytes=57365)。
不确定这是否对您有帮助,但它解释了“幕后”发生的一些事情。
关于Android MediaPlayer 流式传输在网络更改时停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11713696/