2011-02-24 217 views
-2
private void mostrarDiapositiva(Vector<Diapositiva> d, int pos) { 
    if (pos >= d.size()) { 
     pos = d.size() - 1; 
    } 
    Diapositiva diapo = d.get(pos); 

    this.setDiapoPosActual(pos); 
    this.setDiapoActual(diapo); 

    reiniciarDiapositiva(); 

    mostrarDiapositiva(diapo); 
    try { 
     if (diapo.tieneSonido()) { 
      String sndPath = ZIP_SND_PATH + diapo.getSonido().getNombre(); 
      InputStream isSonido = this.getTutorFile().getFile(sndPath); 

      this.audioPlayer = new StreamingMediaPlayer(this); 
      this.audioPlayer.startStreaming(isSonido); 

     } else if (diapo.tieneVideo()) { 
      if (!diapo.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(); 
    } 


} 

private void mostrarDiapositiva(Diapositiva diapo) { 

    ImageButton bp = (ImageButton) findViewById(R.id.buttonprev); 
    bp.setImageResource(R.drawable.ic_menu_back); 

    ImageButton bn = (ImageButton) findViewById(R.id.buttonnext); 
    bn.setImageResource(R.drawable.ic_menu_forward); 

    try { 

     if (diapo.tieneImagen()) { 

      String imgPath = ZIP_IMG_PATH + diapo.getImagen().getNombre(); 

      cargarImagen(imgPath); 
     } 

     this.animarFade(this.FLIPPER_DIAPOS_NUMLAYOUT); 

     //if (diapo.tieneSonido()) { 
     // String sndPath = ZIP_SND_PATH + diapo.getSonido().getNombre(); 
     // InputStream isSonido = this.getTutorFile().getFile(sndPath); 


    } catch (Throwable ex) { 
     Log.e("mostrarDiapositiva", ex.getMessage()); 

     Toast 
     .makeText(this, "Error: " + ex.getMessage(), Toast.LENGTH_SHORT) 
     .show(); 
    } 

} 

除了聲音以外,當我畫屏Android中的聲音(StreamingMediaPlayer無法正常工作,無法正常工作)

mostrarDiapositiva(diapo); 我們有每張幻燈片的相關聲音,所以如果它有聲音(如果(diapo.tieneSonido()))它播放它。

問題是,第一次音頻開始後,一個或兩個音節重新開始。

它看起來像音頻開始時,幻燈片正在着色,當它被繪了它再次開始。有沒有什麼事情或類似的東西?

感謝

+0

對這個問題的標題可能比「的聲音在Android的」更好的爲我們這些搜索。 – 2011-03-11 16:52:33

回答

1

該作品在一個類似的案件:

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