首页 > 解决方案 > 我可以为所有活动创建一个功能,播放,暂停音乐

问题描述

第一个活动

package com.example.birthdaywish;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    
    public void wishButton(View view) {
        final EditText editText = findViewById(R.id.editTextTextPersonName);
        String name = editText.getText().toString();

        Intent intent =  new Intent(this, screen2.class);
        intent.putExtra("name", name);



        startActivity(intent);

        MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.happy_birthday_song);
        mediaPlayer.start(); // no need to call prepare(); create() does that for you




    }

}

以上是我的第一个活动。我在按钮单击时播放音乐的同时单击按钮也将打开第二个活动。

第二次活动

package com.example.birthdaywish;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import org.w3c.dom.Text;

public class screen2 extends AppCompatActivity {


    @SuppressLint("SetTextI18n")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_screen2);
        TextView enteredName = findViewById(R.id.textView2);
        String name = getIntent().getStringExtra("name");
        enteredName.setText("Happy Birthday " +name);


    }



    public void displayMessage(View view) {
      
        

    }
}

现在,当按下显示消息按钮时,我想停止在第一个活动中播放的音乐。或者我可以用其他任何方式来做吗,比如为具有启动和停止方法的 Musicplayer 创建一个通用函数,并且我可以在任何活动中开始或停止音乐时调用它们?

标签: androidandroid-studioandroid-activitysingletonandroid-music-player

解决方案


我可以看到两个选项:

  1. 制作MediaPlayer静态对象。
  2. 考虑实施单一活动方法。您将有两个片段并ViewModel在其中共享您可以访问MediaPlayer

推荐阅读