如何创建Button来控制背景声音。

时间:2012-08-04 07:20:48

标签: android android-mediaplayer android-button

我正在尝试将背景音乐添加到我的应用程序中。我想要的是按btnoptn Button时播放的声音,其文字转换为“音乐关闭”。音乐应该在任何Activity上继续,直到返回设置页面并再次按下Button。然后音乐停止,Button文字变为“音乐开启”。

到目前为止我的代码:

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
    }
}

1 个答案:

答案 0 :(得分:0)

这是一个非常简单的例子。如果你在Activities之间切换,我不知道它是如何工作的,我从未真正使用过MediaPlayer类。

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);
    }
}