android - 启动后使声音按钮停止

标签 android button audio

我需要一个在按下时会启动并在再次按下时会停止的按钮。否则我的声音会重叠。你们中的任何人都可以协助我提供代码吗?以下是我当前拥有的,并且再次单击时无法停止按钮,因此当前它仅在播放,声音完成后停止,导致声音重叠。当按下另一个时停止一个也很理想,但是我不知道如何轻松地合并它。

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_boardone);

    Button one = (Button) findViewById(R.id.button1);
    one.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MediaPlayer mp = MediaPlayer.create(BoardoneActivity.this, R.raw.mouse_laughter);  
            mp.start();

        }
    });

    Button two = (Button) findViewById(R.id.button2);
    two.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MediaPlayer mp = MediaPlayer.create(BoardoneActivity.this, R.raw.evil_laugh);  
            mp.start();
        }
    });

最佳答案

不要使用Media Player的两个对象。以下是我项目中的方法片段。如果有任何错误,请通知我。

private MediaPlayerManager mRecordingPlayer = null;



        private void initAudioPlayer(){
        if(mRecordingPlayer == null){
            mRecordingPlayer = new MediaPlayerManager();

        }
    }


        private void playMusic(int position){
        initAudioPlayer();
        mRecordingPlayer.resetPlayer();
        mRecordingPlayer.setupPlayback("your reasource");
        mRecordingPlayer.startPlaying();
    }

       private void stopPlaying(){
        initAudioPlayer();
        if(mRecordingPlayer.isPlaying()){
            mRecordingPlayer.pausePlaying();

        }

    }


    @Override
    public void onPause() {
        clearAudioPlayer();
        super.onPause();
    }


    private void clearAudioPlayer(){
        if(mRecordingPlayer != null ){
            mRecordingPlayer.resetPlayer();
        }
    }


   @Override
    public void onClick(View view) {

        boolean on = ((ToggleButton) view).isChecked();
            if(on){
                playMusic("play music");
                ((ToggleButton) view).setChecked(true);
            }else{
                stopPlaying();
            }

    }

关于android - 启动后使声音按钮停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22781487/

相关文章:

android - 如何在按下主页按钮后恢复以前的 Activity 并返回到应用程序

image - 灵活的 css 按钮没有图像

python - matplotlib- Y 轴和 X 轴交换

html - 制作HTML链接以播放音频(没有HTML5播放器)

android - 将数据从 mysql 数据库传输到 sqlite 数据库。(Android-JSON)

android - LinearLayout 忽略的边距

android - 在单独的 Activity 中显示绘制的 AChartEngine 图

Android - 线程运行时禁用按钮

multithreading - 如何停止/暂停线程正在播放的WAV文件?

android - NFC标签检测