的Android结结巴巴音频

的Android结结巴巴音频

问题描述:

我有一个按钮,当我点击它表明我用图片的幻灯片,从我的SD卡播放音频,此代码:的Android结结巴巴音频

public void buttonClickHandler(View v) { 
    this.onClickNextDiapositiva(); 
    Diapositiva diapo1 = this.getDiapoActual(); 
    try { 
     if (diapo1.tieneSonido()) { 
      String sndPath = ZIP_SND_PATH + diapo1.getSonido().getNombre(); 
      InputStream isSonido = this.getTutorFile().getFile(sndPath); 

      this.audioPlayer = new StreamingMediaPlayer(this); 
      this.audioPlayer.startStreaming(isSonido); 
     } else if (diapo1.tieneVideo()) { 
      if (!diapo1.tieneImagen()) { 
      String imgPath = ZIP_FONDOS_PATH + "fondo_video.png"; 
      cargarImagen(imgPath); 
      } 
     } 
    } catch (Throwable ex) { 
     Log.e("mostrarDiapositiva", ex.getMessage()); 
     Toast 
     .makeText(this, "Error: " + ex.getMessage(), Toast.LENGTH_SHORT) 
     .show(); 
    } 
    break; 

}

事实是,代码起作用,幻灯片被改变并且音频播放,但是它开始播放,并且当播放不到一秒钟时,它再次开始,这就像是结束了。

任何想法为什么会发生这种情况?感谢太多

使用的MediaPlayer,而不是StreamingMediaPlayer

例如:

MediaPlayer mp = new MediaPlayer(); 
// when you want to play the sound stored in nodeaudio: 
// nodeaudio is a path like /min/sdcard/soundfile 

if (nodeaudio == null || nodeaudio.trim().equals("")) {     
    mp.reset();    
} else {     
    try {     
     mp.reset();     
     mp.setDataSource(nodeaudio);     
     mp.prepare();     
     mp.start();     
    }     
    catch(Exception e) {      
     Log.e("Play sound ERROR", e.toString());      
     e.printStackTrace();     
    }    
}