Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓在点击按钮时播放声音_Android_Media Player - Fatal编程技术网

Android 安卓在点击按钮时播放声音

Android 安卓在点击按钮时播放声音,android,media-player,Android,Media Player,我试图多次播放两个不同的.wav文件。 我想先播放sound1,然后播放sound2,然后播放sound1,依此类推。。 这是一段代码 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_box); mp = MediaPlayer.crea

我试图多次播放两个不同的.wav文件。 我想先播放sound1,然后播放sound2,然后播放sound1,依此类推。。 这是一段代码

    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_box);
        mp = MediaPlayer.create(Box.this, R.drawable.sound1);
        mp2 = MediaPlayer.create(Box.this, R.drawable.sound2);
        handler = new Handler();

        sButton.setOnClickListener(new View.OnClickListener() 
        {
            @Override
            public void onClick(View v) 
            {
                rounds = new Integer(et.getText().toString());
                for(int j = 0; j < rounds; j ++)
                {
                    f();
                    g();
                }

            }
        });
    }

    public void f()
    {
        cdt1 =  new CountDownTimer(5000, 1000)
        {
             public void onTick(long millisUntilFinished) 
             {

             }
             public void onFinish() 
             {   
                 mp.setLooping(true);
                 mp.setVolume(1.0f, 1.0f);
                 mp.start();
             }}.start();

    }
    public void g()
    {
        cdt =  new CountDownTimer(7000, 1000)
        {
             public void onTick(long millisUntilFinished) 
             {

             }
             public void onFinish() 
             {   
                 mp2.setLooping(true);
                 mp2.setVolume(1.0f, 1.0f);
                 mp2.start();
             }}.start();     
    }
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_框);
mp=MediaPlayer.create(Box.this,R.drawable.sound1);
mp2=MediaPlayer.create(Box.this,R.drawable.sound2);
handler=新的handler();
setOnClickListener(新视图.OnClickListener()
{
@凌驾
公共void onClick(视图v)
{
舍入=新整数(et.getText().toString());
对于(int j=0;j
我每次播放声音时都要重置它们吗?
提前感谢。

您可以检查mediaplayer是否仍在使用以下内容:

if (mp.isPlaying()) {
    //do nothing
} else {
    //start new sound
}

有问题吗?!?声音没有按正确的顺序播放。最后的问题。从我这里看到的。您正在呼叫f,并有5秒的倒计时,直到您开始发声1。同时,您正在启动g,启动sound2的倒计时为7秒?我想在创建活动时在5秒后播放sound1,然后在播放sound1后播放sound2,依此类推。如果是这样,您需要对声音进行不同的处理。检测声音何时结束如何,这样你就可以及时重新开始。顺序正确吗:开始->完成->停止->准备->开始?