Media Player上的错误(-38.0)

时间:2014-03-02 19:15:45

标签: android eclipse media-player

我正在制作一个简单的媒体播放器应用程序。它会输入一个文本字段(et),用户只需输入要播放的歌曲的确切名称,然后按下要播放的播放按钮(ib1)即可。歌曲保存在SD卡内。我的代码是:

ib1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final String value = et.getText().toString();
            String full_path = "/mnt/media_rw/sdcard/mymusic/" + value + ".mp3";
            et.setText("");

            mp = new MediaPlayer();                     
            mp.setDataSource(full_path);
            mp.prepare();
            mp.start();                             


} });

但这会产生Media Player错误(-38.0)。因此,在Media Player called in state 0, error (-38,0)之后,我尝试用以下代码替换mp行:

mp.setDataSource(full_path); 
mp.setOnPreparedListener(null);
mp.prepareAsync();
mp.start();

但它也不起作用,产生错误(1,-2147483648)。有人可以帮我或为代码提出一些建议吗?非常感谢

1 个答案:

答案 0 :(得分:0)

您需要使用侦听器在onPrepared方法中调用mediaPlayer.start()。您收到此错误是因为您在达到准备状态之前调用了mp.start()。

以下是如何做到这一点:

mp.setDataSource(full_path); 
mp.setOnPreparedListener(this);
mp.prepareAsync();

public void onPrepared(MediaPlayer player) {
player.start();
}