通过复选框激活android中的停用音乐



我基本上是Android编程的新手,所以我在代码方面遇到了一些问题。其中一个问题是,当我尝试使用带有"设置"选项的主菜单时我想启动和暂停整个应用程序中播放的音乐。问题是,我已经在主菜单中通过MediaPlayer创建了音乐代码,但我不知道如何在SETTINGS活动中获取该值或变量并对其进行操作。这是我已经有的了。

public class ActivityMenu extends Activity
{
    private TextView lbl1, lbl2;
    public MediaPlayer mediaPlayer;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu);
        lbl1=(TextView)findViewById(R.id.lbl1);
        lbl1.setTextColor(Color.WHITE);
        lbl2=(TextView)findViewById(R.id.lbl2);
        lbl2.setTextColor(Color.WHITE);

        mediaPlayer = MediaPlayer.create(this, R.raw.barrelvolcano);
        mediaPlayer.setLooping(true);
        mediaPlayer.setVolume(100,100);
        mediaPlayer.start();
    }
        public void settings(View view)
    {
        Intent s = new Intent(this, ActivitySettings.class);
        startActivity(s);
    }
}

////这是我的ActivitySettings,我想在这里操作mediaPlayer

public class ActivitySettings extends Activity
{
    private CheckBox chkb1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_settings);
        chkb1=(CheckBox)findViewById(R.id.chkb1);
        chkb1.setOnClickListener(new CheckBox.OnClickListener()
        {
            @Override
            public void onClick(View v) {
                if(chkb1.isChecked())
                {
                    mediaPlayer.start();
                    //AudioManager volumeControl = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
                    //volumeControl.setStreamMute(AudioManager.STREAM_MUSIC, false);
                }
                else
                {
                    mediaPlayer.pause();
                    //AudioManager volumeControl = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
                    //volumeControl.setStreamMute(AudioManager.STREAM_MUSIC, true);
                }
            }
        });
    }   
}

正如你所看到的,我已经尝试了一个选项,但不是我想要的,将所有多媒体音量静音。所以,如果你知道我该如何解决我的问题,我会好好学习的!谢谢

您应该使用startActivityForResult(),并在ActivityMenu中有一个名为onActivityResult()的回调方法。然后,如果他们取消选中该框并关闭ActivityMenu活动中的音乐,您可以报告。参考

最新更新