代码之家  ›  专栏  ›  技术社区  ›  Chirag Savsani

MediaPlayer仅播放2-3秒而不是MP3

  •  0
  • Chirag Savsani  · 技术社区  · 7 年前

    有20秒长的MP3文件。

    但是 MediaPlayer 只播放2-3秒。

    我用下面的代码从原始文件播放MP3。

    try{
            AssetFileDescriptor afd = getApplicationContext().getResources().openRawResourceFd(R.raw.buzzer6);
            MediaPlayer mediaPlayer = new MediaPlayer();
            mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener(){
                    @Override
                    public void onPrepared(MediaPlayer mp){
                          mp.start();
                    }
            });
            mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
            afd.close();
            mediaPlayer.prepare();
    } catch (IOException ioe) {
            ioe.printStackTrace();
    }
    

    那么问题是什么呢?

    我想播放完整的MP3文件,20秒。

    1 回复  |  直到 7 年前
        1
  •  1
  •   trocchietto    7 年前

    我建议你看看这个 post

    基本上,如果您试图扩大MediaPlayer的范围作为实例变量,它应该可以工作

    (在示例中声明为static,可能不需要声明为static)

    只需更改此行:

    MediaPlayer mediaPlayer = new MediaPlayer();
    

    在:

    private MediaPlayer mediaPlayer //is an instance variable not a local one
    

    在你维持的方法中:

    mediaplayer=新的mediaplayer();