【问题标题】:How to create Button to control background sound.如何创建按钮来控制背景声音。
【发布时间】:2012-08-04 07:20:47
【问题描述】:

我正在尝试将背景音乐添加到我的应用程序中。我想要的只是按下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
    }
}

【问题讨论】:

    标签: android android-mediaplayer android-button


    【解决方案1】:

    这是一个非常简单的例子。如果您在活动之间切换,我不知道它是如何工作的,我从未真正使用过 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);
        }
    }
    

    【讨论】:

    • bali182 :感谢您尝试给出答案,非常感谢:)
    • 不客气!这是你要找的吗?还是我完全误解了你?
    • 不知道,这让我每次尝试总是强行关闭我遇到的时候很头疼
    猜你喜欢
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 2020-09-27
    相关资源
    最近更新 更多