android播放两首歌曲问题
问题描述:
播放音频文件时出现问题。当我输入两个词如“嗨汤姆”,只有最后一个字是在玩。但在我的日志猫似乎通过第一首歌词。我的代码错了?或者有没有解决这里第一首歌曲,然后在这里第二首歌曲?任何解决方案对我来说都可以,例如它可以在这些歌曲之间延迟。谢谢。 我还看到了关于nextsong的musicdroid代码。但我是新来的android和我不能集成我的代码。 musicdroidandroid播放两首歌曲问题
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
答
您不等待第一个声音完成,然后再播放下一个声音。 尝试向媒体播放器添加侦听器,并在第一个字符完成后播放第二个字。
检出setOnCompletionListener。
另请阅读文档:http://developer.android.com/reference/android/media/MediaPlayer.html
谢谢您的回答。在listener中,我会额外添加任何代码,如mediaPlayer.release();或只是离开它? – wseries 2011-04-04 18:15:40