0

我正在尝试将背景音乐添加到我的应用程序中。我想要的只是在按下时应该播放声音,btnoptn Button并且它的文本会转换为“音乐关闭”。音乐应继续播放,Activity直到返回设置页面并Button再次按下相同的按钮。音乐随即停止,Button文本变为“music on”。

到目前为止,这是我的代码:

package hello.english;

import hello.english.R;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.media.MediaPlayer;
import android.os.Bundle;

public class welcome extends Activity implements OnClickListener{
    private Button btnoptn;
    private Button btnmenu;
    public static MediaPlayer mp2;

    private void btnoptn(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);     
        final Button testButton = (Button) findViewById(R.id.btnoptn);
        testButton.setTag(1);

        testButton.setText("Musik Of");
        mp2=MediaPlayer.create(this, R.raw.guitar_music);
        mp2.start();
        mp2.setLooping(true);
        testButton.setOnClickListener( new View.OnClickListener() {
            public void onClick (View v) {
                final int status =(Integer) v.getTag();

                if(status == 1) {
                    mp2.start();
                    mp2.setLooping(true);
                    testButton.setText("Musik Of");
                    v.setTag(0); //pause
                } else {
                    mp2.pause();
                    testButton.setText("Musik On");
                    v.setTag(1);
                } //pause
            }
        });
    }

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.welcome);

        btnoptn=(Button)findViewById(R.id.btnoptn);
        btnmenu=(Button)findViewById(R.id.btnmenu);

        btnoptn.setOnClickListener( new View.OnClickListener() {
        public void onClick(View view) {
            btnoptn(null);
        }

        });

        btnmenu.setOnClickListener( new View.OnClickListener() {
            public void onClick(View view2) {
            btnmenu();
        }
        });
    }

    protected void btnmenu() {
        try {
            Intent btnmenu= new Intent (this, menuenglish.class);
            startActivity(btnmenu);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void onStart() {
        super.onStart();
        btnoptn.setTag(0);
    }

    public void onClick(View view2) {
        // TODO Auto-generated method stub
    }
}
4

1 回答 1

0

This is a really simple example. I don't know how it works if you switch between Activities, i never really worked with the MediaPlayer class.

public class MainActivity extends Activity 
{
    private MediaPlayer mediaPlayer;
    private Button musicButton;
    private OnClickListener listener = new OnClickListener()
    {
        // a boolean value in the names Onclicklistener class. 
        // this will help us to know, if the music is playing or not.
        boolean isPlaying = false;

        @Override
        public void onClick(View arg0)
        {
            if(isPlaying)
            {
                mediaPlayer.pause(); //stop the music
                musicButton.setText("Start"); //change the buttons text
            }
            else
            {
                mediaPlayer.start(); //start the music
                musicButton.setText("Stop"); //change the text
            }
            //changing the boolean value
            isPlaying = !isPlaying;
        }
    };

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //Creating the mediaplayer with a desired soundtrack.
        mediaPlayer = MediaPlayer.create(this, R.raw.my_music);

        //Getting the Button reference from the xml
        musicButton = (Button) findViewById(R.id.music_button);

        //Setting the listener
        musicButton.setOnClickListener(listener);
    }
}
于 2012-08-04T12:57:06.257 回答