Android MediaPlayer流媒体在网络更改时停止

lig*_*ark 15 audio streaming android android-mediaplayer

我在Android上使用MediaPlayer传输音频.

当设备从Wi-Fi移动到蜂窝网络或反之亦然时,MediaPlayer停止播放.

通常,缓冲区中有几秒钟的音频,因此播放不会立即停止.

理想情况下,我想选择不间断播放的流,但我看不到如何做到这一点.

我正在处理服务器上托管的mp3文件和实时广播流.

Vid*_*nes 14

从服务器的角度来看,将网络模式从WiFi更改为3G(反之亦然),看起来就像是来自单独IP(客户端)的全新连接.

如果您正在下载的服务器不支持跟踪流(例如,秒数,序列,字节)(与媒体服务器不同),则必须再次从0字节开始为您的mp3提供服务​​.

如果您的URL指向位于标准HTTP服务器上的MP3文件,您的情况将是您期望的.您应该考虑使用媒体流服务器,以便您可以根据自己的选择继续下载/流式传输.当您收到连接丢失/恢复的意图时,您可以将您的媒体播放器指向URL中具有文件位置的新URL(例如,秒= 19,字节= 57365).

不确定这是否对你有所帮助,但它解释了"在幕后"发生了什么.


gma*_*ter 0

我不知道为什么你的媒体播放器停止了,但也许你可以添加一个 onReceive 方法并在该方法中放入“mp.start()”以使其重新开始播放。
Android,如何在轮询数据时处理网络变化(从 GPRS 到 Wi-fi,反之亦然)

您可能需要创建一个单独的类,但这应该解释如何创建一个在切换网络时调用的方法,此时您可以调用“mp.start()”来恢复播放(假设 mp 是您的 MediaPlayer)。
当然,这是假设您的 MediaPlayer 仅在您切换网络时暂停,而不是停止。