我正在使用MediaPlayer播放广播流。当我后台播放流的主要活动时,会发生问题。

当电话使用过多资源时(例如,尝试显示已安装的应用程序列表时),流将停止。我怀疑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();
});


它们都在主线程上运行。

最佳答案

尝试让Mediaplayer作为服务而不是在活动中运行。这样,当您的应用进入暂停状态时,您可以在后台播放Mediaplayer。当用户将注意力从应用程序中移开时(例如,如果打来电话),活动将暂停或销毁。但是,服务旨在与Android OS中运行的所有内容一起在后台运行。

Services

08-17 11:11