Android MediaPlayer 流式传输在网络更改时停止

标签 android audio streaming android-mediaplayer

我在 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/

相关文章:

java - 如何打包和链接 OpenCV 二进制文件和适用于 Android Studio 的 OpenCV Java SDK?

java - GreenDao如何实现回调

html - InfoWindow内部的音频播放器(Google map )

ios - 用于从 iphone 麦克风流式传输音频的多点连接

java - 错误 :Execution failed for task

ImageButton 与其他元素重叠的 Android 布局

android - Android编码器和语音邮件的文件格式

ios - 音量提升 AudioKit

ffmpeg - 实时转码和流媒体

java - 使用 REST 传输数据