java - 我怎样才能停止声音

标签 java android audio

当我单击按钮时,第一个声音开始,然后我再次单击按钮第一个声音停止,第二个声音开始。我能怎么做?

public void onClick(View v) {
            final MediaPlayer mp = MediaPlayer.create(getBaseContext(), R.raw.random); 
            final MediaPlayer mp2 = MediaPlayer.create(getBaseContext(), R.raw.stop);
            if(!mStarted) {
                // Start                                    
                mp2.stop();             

                mp.start();     

                Toast.makeText(finish.this, "Started!", Toast.LENGTH_SHORT).show();
                mStarted = true;
                mInterval = MIN_INTERVAL;
                mHandler.removeMessages(MESSAGE_RANDOM);               
                mHandler.sendEmptyMessage(MESSAGE_RANDOM);


            } else {
                // Stop
                generate.setEnabled(false);
                mp.stop();                          
                mp2.start();    

                mStarted = false;
                Toast.makeText(finish.this, "Stoping...", Toast.LENGTH_SHORT).show();                               
            }      
        }      
    };

最佳答案

只需在 mp.start() 之前添加 mp2.stop() 并在 mp2.start 之前添加 mp.stop() ()。不要忘记检查 MediaPlayers 是否已初始化并通过调用

进行播放
if (mp != null && mp.isPlaying())

对于每个 MediaPlayer 实例。

希望这有帮助。

关于java - 我怎样才能停止声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6490176/

相关文章:

Android,控制背景音的音量

ipad - 如何将音效添加到 iPad 应用程序

java - Activity 生命周期的方法规则

java - ...无法获取 wglGetExtensionsStringARB

java - OpenCV android VideoWriter 问题

java - 使用 android 应用程序扫描范围内的蓝牙设备

Powershell 编辑元数据,轨道号 1-9 前需要前导零

java - 将时间转换为秒,然后再将其转换回小时(JAVA)

java - token 语法错误 "(", ;预期的。我究竟做错了什么?

java - VanillaSoftwareProcess 实体在 Apache Brooklyn 中不起作用