【问题标题】:Android stops stream from MediaPlayerAndroid 停止来自 MediaPlayer 的流
【发布时间】:2013-03-07 03:10:33
【问题描述】:

我正在使用 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();
});

它都在主线程上运行。

【问题讨论】:

    标签: android media-player disconnected


    【解决方案1】:

    Service 是一个应用程序组件,它可以在后台 中执行长时间运行的操作,并且不提供用户界面。另一个应用程序组件可以启动一个服务,即使用户切换到另一个应用程序,它也会继续在后台运行。此外,组件可以绑定到服务以与其交互,甚至执行进程间通信 (IPC)。例如,服务可能会在后台处理网络事务、播放音乐、执行文件 I/O 或与内容提供者交互。

    Dive into deep

    【讨论】:

      【解决方案2】:

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

      Services

      【讨论】:

      • Ecellent,这就是我要找的!
      • 经过一天的调查,现在很明显,Android 4.1 将在资源开始下降时终止 MediaPlayer,无论 MediaPlayer 的代码位于何处——活动、服务甚至另一个应用程序中。
      猜你喜欢
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 1970-01-01
      • 2013-01-19
      相关资源
      最近更新 更多