如何创建按钮来控制背景声音。 [英] How to create Button to control background sound.

查看:159
本文介绍了如何创建按钮来控制背景声音。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想背景音乐添加到我的应用程序。我想要的是发挥应该的声音在pressing的 btnoptn 按钮和它的文本转换成音乐关。音乐应该继续在任何活动直到设置页面返回给和相同的按钮是$ P $再次pssed 。然后,音乐停止和按钮文本更改为音乐。

这是我的code迄今:

 包hello.english;进口hello.english.R;
进口android.app.Activity;
进口android.content.Intent;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.Button;
进口android.media.MediaPlayer;
进口android.os.Bundle;公共类扩展的欢迎活动实现OnClickListener {
    私人按钮btnoptn;
    私人按钮btnmenu;
    公共静态MediaPlayer的MP2;    私人无效btnoptn(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        最终按钮testButton =(按钮)findViewById(R.id.btnoptn);
        testButton.setTag(1);        testButton.setText(MUSIK中);
        MP2 = MediaPlayer.create(这一点,R.raw.guitar_music);
        mp2.start();
        mp2.setLooping(真);
        testButton.setOnClickListener(新View.OnClickListener(){
            公共无效的onClick(视图v){
                最终诠释状态=(整数)v.getTag();                如果(状态== 1){
                    mp2.start();
                    mp2.setLooping(真);
                    testButton.setText(MUSIK中);
                    v.setTag(0); //暂停
                }其他{
                    mp2.pause();
                    testButton.setText(MUSIK开);
                    v.setTag(1);
                } //暂停
            }
        });
    }    / **当第一次创建活动调用。 * /
    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.welcome);        btnoptn =(按钮)findViewById(R.id.btnoptn);
        btnmenu =(按钮)findViewById(R.id.btnmenu);        btnoptn.setOnClickListener(新View.OnClickListener(){
        公共无效的onClick(查看视图){
            btnoptn(NULL);
        }        });        btnmenu.setOnClickListener(新View.OnClickListener(){
            公共无效的onClick(查看视图2){
            btnmenu();
        }
        });
    }    保护无效btnmenu(){
        尝试{
            意图btnmenu =新意图(这一点,menuenglish.class);
            startActivity(btnmenu);
        }赶上(例外五){
            e.printStackTrace();
        }
    }    公共无效调用onStart(){
        super.onStart();
        btnoptn.setTag(0);
    }    公共无效的onClick(查看视图2){
        // TODO自动生成方法存根
    }
}


解决方案

这是一个非常简单的例子。我不知道你是否活动之间切换,它是如何工作的,我从来没有真正用的MediaPlayer类的工作。

 公共类MainActivity扩展活动
{
    私人的MediaPlayer媒体播放器;
    私人按钮musicButton;
    私人OnClickListener监听器=新OnClickListener()
    {
        //在Onclicklistener类名的布尔值。
        //这将有助于我们了解,如果正在播放的音乐或没有。
        布尔IsPlaying模块= FALSE;        @覆盖
        公共无效的onClick(查看arg0中)
        {
            如果(IsPlaying模块)
            {
                mediaPlayer.pause(); //停止音乐
                musicButton.setText(开始); //改变按钮文本
            }
            其他
            {
                mediaPlayer.start(); //开始播放音乐
                musicButton.setText(停止); //更改文本
            }
            //改变布尔值
            IsPlaying模块= IsPlaying模块!;
        }
    };    @覆盖
    公共无效的onCreate(捆绑savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.main);        //用所需的配乐创建媒体播放器。
        媒体播放器= MediaPlayer.create(这一点,R.raw.my_music);        //充分利用XML按钮参考
        musicButton =(按钮)findViewById(R.id.music_button);        //设置监听器
        musicButton.setOnClickListener(监听);
    }
}

I'm trying to add background music to my application. All I want is the sound should played on pressing the btnoptn Button and its text transitions into the "music off". The music should continue on any Activity until the settings page is returned to and the same Button is pressed again. The music then stops and the Button text changes to "music on".

This my code so far:

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

解决方案

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

这篇关于如何创建按钮来控制背景声音。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆