Android 双音安卓

Android 双音安卓,android,audio,onclick,android-mediaplayer,Android,Audio,Onclick,Android Mediaplayer,} 当我单击按钮时,它会播放声音,然后再次单击按钮停止播放,它不会停止并再次播放声音,这会导致一次播放两次声音。请帮助您每次单击都会创建一个新的MediaPlayer,而不是保留对第一个的引用。播放声音的MediaPlayer与您正在调用的isPlaying()不同。您需要将mp变量转换为字段,以便保留对它的引用 我想象这样的事情会奏效: package project.kalmas; import android.app.Activity; import android.content.In

}
当我单击按钮时,它会播放声音,然后再次单击按钮停止播放,它不会停止并再次播放声音,这会导致一次播放两次声音。请帮助

您每次单击都会创建一个新的
MediaPlayer
,而不是保留对第一个的引用。播放声音的
MediaPlayer
与您正在调用的
isPlaying()
不同。您需要将
mp
变量转换为字段,以便保留对它的引用

我想象这样的事情会奏效:

package project.kalmas;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;

public class one extends Activity {

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.one);
    }

    public void onclick2(View view)
    {
        Intent i=new Intent("project.two");
        startActivity(i);
    }
    public void onclick3(View view)
    {
        MediaPlayer mp= MediaPlayer.create(this,R.raw.one);
        if(mp.isPlaying()){
            mp.stop();
        } else {
            mp.start();
        }

    }

每次你点击这个按钮,你就会再次发出那种声音。因此,在oncreate方法MediaPlayer mp=MediaPlayer.create(this,R.raw.one)中单击ex之前,请执行此操作;谢谢vince,现在可以工作了,但它只工作一次启动然后停止,但在单击3后再也不会启动,我希望它开始停止…谢谢.Per,“一旦处于停止状态,在调用prepare()或prepareAsync()将MediaPlayer对象重新设置为准备状态之前,无法启动播放。”忽略我关于使用布尔字段的评论,这是不正确的。
public class one extends Activity {

    MediaPlayer mp;

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.one);
        mp = MediaPlayer.create(this,R.raw.one);
    }

    public void onclick2(View view)
    {
        Intent i=new Intent("project.two");
        startActivity(i);
    }
    public void onclick3(View view)
    {

        if(mp.isPlaying()){
            mp.stop();
        } else {
            mp.start();
        }

    }
}