Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.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_Audio_Media_Playback - Fatal编程技术网

更改使用延迟android播放的音频

更改使用延迟android播放的音频,android,audio,media,playback,Android,Audio,Media,Playback,我试着以5秒的时间间隔一个接一个地播放音频。然而,我真的没有看到这种情况发生。播放列表中的第三个音频,跳过其他音频。这意味着,在调试时,仅播放music3,而不播放其他音乐。我希望有其他的方法来做这件事。而且我用的就是这样的准备方法。但是跑步时没有什么区别 for(int j=0;j<3;j++) { if(j==0) { xnp = MediaPlayer.create(this,R.raw.ticktock); new Hand

我试着以5秒的时间间隔一个接一个地播放音频。然而,我真的没有看到这种情况发生。播放列表中的第三个音频,跳过其他音频。这意味着,在调试时,仅播放music3,而不播放其他音乐。我希望有其他的方法来做这件事。而且我用的就是这样的准备方法。但是跑步时没有什么区别

for(int j=0;j<3;j++)
{

    if(j==0)
        {
        xnp = MediaPlayer.create(this,R.raw.ticktock);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                try {
                xnp.prepare();
                xnp.start();
            } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        }, 5000);

        xnp.stop();
        }
    if(j==1)
        {
        xnp = MediaPlayer.create(this,R.raw.music2);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                try {
                xnp.prepare();
                xnp.start();
            } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        }, 5000);

        xnp.stop();
        }
    else if (j==2)
        {
        xnp = MediaPlayer.create(this,R.raw.music3);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                try {
                    xnp.prepare();
                    xnp.start();
                } catch (IllegalStateException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            }, 5000);
        xnp.stop();
        intenter();
        }

}       

for(int j=0;j您当前的实现无法工作,因为媒体播放未在主线程上完成,因此您将立即播放所有3个媒体资源,因此只听到第三个媒体资源

我想您可能需要调用MediaPlayer对象。在完成侦听器中,您可以将延迟后的消息发送到处理程序,以便将下一个要播放的资源排队。

您的意思是:for(int j=0;j)