Android结巴音频

时间:2011-02-28 12:35:52

标签: android

当我点击它时,我有一个按钮向我显示带有图片的幻灯片,并使用以下代码播放我的SD卡中的音频:

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;

}

事实是代码有效,幻灯片被更改并且音频被播放但它开始播放,当播放时间不到一秒时它再次启动,就好像它是否结巴。

知道为什么会这样吗?非常感谢

1 个答案:

答案 0 :(得分:1)

使用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();                 
    }             
}