我正在使用 MediaPlayer 播放广播流。当我将播放流的主要 Activity 设置为背景时,就会出现问题。
当手机使用过多资源时(例如,在尝试显示已安装应用程序列表时),流会停止。我怀疑 Android 会关闭流以节省一些资源。
这是我在开始时准备媒体播放器的方式:
radioPlayer=new MediaPlayer();
radioPlayer.setDataSource(streamLocation); //with a try/catch of course in the full code
radioPlayer.prepareAsync();
radioPlayer.seekTo(0);
radioPlayer.setOnInfoListener(this);
radioPlayer.setOnPreparedListener(new OnPreparedListener(){
public void onPrepared(MediaPlayer mp)
radioPlayer.start();
});
都是在主线程上运行。
最佳答案
服务是一种应用程序组件,可以在后台 执行长时间运行的操作,并且不提供用户界面。另一个应用程序组件可以启动一个服务,即使用户切换到另一个应用程序,它也会继续在后台运行。此外,组件可以绑定(bind)到服务以与其交互,甚至执行进程间通信 (IPC)。例如,服务可能处理网络事务、播放音乐、执行文件 I/O 或与内容提供商交互,所有这些都来自后台。
关于Android 停止从 MediaPlayer 流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15255673/