android播放两首歌曲的问题

时间:2011-04-04 10:22:36

标签: android audio media-player

我在播放音频文件时遇到问题。当我输入两个像'hi tom'的单词时,只有最后一个单词正在播放。但在我的日志猫中似乎传递了第一首歌曲。我的代码错了吗?或者有没有任何解决方案,这里第一首歌,然后在这里第二首歌?任何解决方案对我来说都是好的,例如它可能会滞后于这些歌曲。谢谢。 我也看到了关于nextsong的musicdroid代码。但我是Android的新手,我无法整合我的代码。musicdroid

public  void function (String[][] word)
{

try{    
for (int j=0;j<word.length;j++)
{
    for(int i=0;i<word[j].length;i++)
    {
        System.out.println("word:"+word[j][i]);
        if(word[j][i].equals("empty")==false)     
        {
        mediaPlayer.reset();        
        mediaPlayer.setDataSource("/sdcard/voice/"+word[j][i]+".ogg");
        mediaPlayer.prepare();
        mediaPlayer.start();
        System.out.println(word[j][i]+"-");
        }
    }
}
System.out.println("end");

}
catch(Exception e)
{
    System.out.println("error:"+e.getMessage());
}
}

这是我的日志猫。它似乎是第一个声音而不是播放。

04-04 09:58:18.934: INFO/System.out(363):word:hi

04-04 09:58:18.944: INFO/StagefrightPlayer(34): setDataSource('/sdcard/voice/hi.ogg')

04-04 09:58:19.024: DEBUG/AudioSink(34): bufferCount (4) is too small and increased to 12

04-04 09:58:19.024: INFO/System.out(363): hi-

04-04 09:58:19.024: INFO/System.out(363): word:tom
04-04 09:58:19.034: INFO/StagefrightPlayer(34): setDataSource('/sdcard/voice/tom.ogg')

04-04 09:58:19.114: DEBUG/AudioSink(34): bufferCount (4) is too small and increased to 12

04-04 09:58:19.124: INFO/System.out(363): tom-

04-04 09:58:19.124: INFO/System.out(363): end

1 个答案:

答案 0 :(得分:0)

在播放下一首声音之前,您不会等待第一个声音完成。 尝试将监听器添加到媒体播放器,并在第一个单词结束后播放第二个单词。

查看setOnCompletionListener。

另请阅读此处的文档:http://developer.android.com/reference/android/media/MediaPlayer.html