0

我已经创建了一个分支活动。现在我想在该分支活动上添加两个按钮。当我点击“声音开启”按钮时,我的哔声开始,当我点击“声音关闭”时,我的哔声关闭。而且他们同时隐藏。

谢谢

我的活动代码

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sound_layout);





    soundBttnOn =(Button) findViewById(R.id.soundBttnOn);
    soundBttnOn.setOnClickListener(
            new OnClickListener(){
                @Override
                public void onClick(View v) {
                    startMediaPlayer();
                }
            }
        );

    soundBttnoff =(Button) findViewById(R.id.soundBttnOff);
    soundBttnoff.setOnClickListener(
            new OnClickListener(){ 
                @Override
                public void onClick(View v) {
                    stopMediaPlayer();
                }
            }
        );
    }

     private void startMediaPlayer() {
        mediaPlayer = MediaPlayer.create(SoundLayout.this,R.raw.keybutton5);
        mediaPlayer.start();
    }

    private void stopMediaPlayer() {
        if( mediaPlayer != null ) {
            MediaPlayer mp = null;
            mp.stop();
            mp.release();
        }
    }

它显示没有问题,但它也无法正常工作..:P..我无法实现声音。

4

1 回答 1

0

您可以进行简单的谷歌搜索以找到大量添加按钮的示例。但是,要播放声音文件,请查看MediaPlayer类。

Button startBtn, stopBtn;
//get the reference of Button
....

final MediaPlayer mp = new MediaPlayer();
startBtn.onClickListener() {
    public void onClick(View v) {
        try {
            mp.setDataSource(path+"/"+audio.mp3);
            mp.prepare();
            mp.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
};  

stopBtn.onClickListener() {
     public void onClick(View v) {      
        if(mp.isPlaying()) {
                    mp.stop();
                    //hide buttons
                    stopBtn.setVisibiltiy(View.GONE);
                    startBtn.setVisibility(View.GONE);
        }   
     }
};

PS:只有开和关,不需要两个按钮,一个按钮就可以了。

编辑:

对于单个按钮,只需使用媒体播放器的播放状态来决定对按钮单击采取的操作。

singleBtn.onClickListener() {
    public void onClick(View v) {
        try {
            if(mp.isPlaying()) mp.stop();
            else {
                mp.setDataSource(path+"/"+audio.mp3);
                mp.prepare();
                mp.start();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
};  
于 2013-08-07T15:01:34.170 回答