【问题标题】:When to stop music in a music player何时停止音乐播放器中的音乐
【发布时间】:2018-09-08 03:52:54
【问题描述】:

我正在用 exoplayer 构建一个音乐播放器。我正在使用单独的音乐播放服务,但问题是即使我通过转到最近关闭主要活动,音乐也会继续播放。我试图通过在调用 onDestroy() 时停止服务来解决这个问题。然而,当按下返回按钮时,这也会停止音乐服务。我在 Musixmatch 中检查了这两种情况,如果您从最近关闭应用程序,它确实会停止,但当您按下应用程序中的后退按钮时它不会停止,即使我可以看到在应用程序再次启动时再次创建了主要活动。那么如何在我的应用中实现同样的效果呢?

【问题讨论】:

    标签: android media android-lifecycle activity-lifecycle exoplayer2.x


    【解决方案1】:

    我有一个示例 android 声音项目 - 当我转到最近并“关闭所有”我的音频停止时。并使用 goBack - 您可以暂停,但如果您不这样做,它会继续播放。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_audio);
        mediaPlayer = MediaPlayer.create(this,R.raw.oldcar);
        mediaPlayer.start();
    }
    
    public void goBack(View view){
        //mediaPlayer.pause();
        Log.i("info","ending audio activity");
        finish();
    }
    

    【讨论】:

      【解决方案2】:

      所以我们需要在从最近删除任务时停止服务。为此你可以看看"stop service when remove app through recent app"的解决方案。

      它基本上建议在调用public void onTaskRemoved(Intent rootIntent)时停止服务。

      1).在您的清单中添加您定义服务的 stopWithTask 属性:

      <service
          android:enabled="true"
          android:name=".YourService"
          android:exported="false"
          android:stopWithTask="true" />
      

      2). 如果上述方法不起作用,则执行反向操作

      <service
          android:enabled="true"
          android:name=".MyService"
          android:exported="false"
          android:stopWithTask="false" />  //change to false
      

      因此您的服务的方法 onTaskRemoved 将被调用。 (请记住,如果您将 stopWithTask 设置为 true,它将不会被调用。

      public class YourService extends Service {
      
          @Override
          public void onStartService() {
              //your code
          }
      
          @Override
          public void onTaskRemoved(Intent rootIntent) {
              System.out.println("onTaskRemoved called");
              super.onTaskRemoved(rootIntent);
              //do something you want
              //stop service
              this.stopSelf();
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-25
        • 1970-01-01
        • 2022-01-21
        相关资源
        最近更新 更多