Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 音乐播放器-活动生命周期_Android_Audio Player_Activity Lifecycle_Android Music Player - Fatal编程技术网

Android 音乐播放器-活动生命周期

Android 音乐播放器-活动生命周期,android,audio-player,activity-lifecycle,android-music-player,Android,Audio Player,Activity Lifecycle,Android Music Player,我的应用程序中的背景音乐真的很难处理。我只想在所有活动中播放音乐-当我按下home(主页)按钮时,我想停止音乐。我想在所有活动中使用“停止或播放”音乐按钮,但无法使其正常工作 所以我决定做出令人尴尬的选择——只在1个活动中玩它 一次创建 backgroundmusic = MediaPlayer.create(StoryActivity.this, R.raw.creepy_music); backgroundmusic.start(); 暂停 @Override

我的应用程序中的背景音乐真的很难处理。我只想在所有活动中播放音乐-当我按下home(主页)按钮时,我想停止音乐。我想在所有活动中使用“停止或播放”音乐按钮,但无法使其正常工作

所以我决定做出令人尴尬的选择——只在1个活动中玩它

一次创建

    backgroundmusic = MediaPlayer.create(StoryActivity.this, R.raw.creepy_music);
    backgroundmusic.start();
暂停

    @Override
    protected void onPause() {
    super.onPause();
    backgroundmusic.release();
    finish();
}
您能帮助我轻松完成活动生命周期吗?因此,当用户按下home(主页)按钮时,音乐就会停止。当他返回应用程序时-音乐将被恢复,此活动也将(它不是主活动)

谢谢大家

以下是不同的生命周期状态。现在回答你的问题

@Override
    protected void onStop() {
        super.onStop();
        backgroundmusic.pause();
        length = backgroundmusic.getCurrentPosition();  
    }

@Override
    protected void onResume() {
        super.onResume();
        backgroundmusic.seekTo(length);
        backgroundmusic.start();
    }

公共类MainActivity扩展了AppCompatActivity
中,AppCompatActivity是活动功能的主要来源,因此在上述方法中,如
super.onResume()
super.onStop()
super指的是
AppCompatActivity类

假设您可以在应用程序中获得音乐服务,您可能正在查找:

 public class MyApp extends Application{

MusicService musicService;

@Override
public void onCreate() {
    super.onCreate();

    registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
        @Override
        public void onActivityCreated(Activity activity, Bundle savedInstanceState) {

        }

        @Override
        public void onActivityStarted(Activity activity) {

        }

        @Override
        public void onActivityResumed(Activity activity) {
            if(musicService==null) return;
            if(!musicService.isPlaying()){
                musicService.play();
            }
        }

        @Override
        public void onActivityPaused(Activity activity) {
             if(musicService==null) return;
             if(musicService.isPlaying()){
                musicService.pause();
            }
        }

        @Override
        public void onActivityStopped(Activity activity) {

        }

        @Override
        public void onActivitySaveInstanceState(Activity activity, Bundle outState) {

        }

        @Override
        public void onActivityDestroyed(Activity activity) {

        }
    });
}
}


希望这有助于

您可以从服务中播放音乐并从活动中管理流。关于这一点,这里有一个很好的教程:在这种情况下,音乐不会只附在一个活动上,你可以在任何地方管理@hrefааббббббббббббббббббббб。。。我希望这会有所帮助