【问题标题】:Media Player called in state 0, error (-38,0) error媒体播放器在状态 0 中调用,错误 (-38,0) 错误
【发布时间】:2012-02-19 11:11:49
【问题描述】:

我正在尝试使用我从按钮调用的这段代码,但它不起作用,当我看到 LogCat 窗口时,我发现 Media Player 在状态 0 中调用,错误 (-38,0)

public void audioPlayer(String path, String fileName){

//set up MediaPlayer    
        MediaPlayer mp = new MediaPlayer();

        try {
            mp.setDataSource(HeyActivity.this, Uri.parse(path+"/"+fileName));
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            mp.prepare();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            System.out.print("hey");
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        mp.start();

    }

【问题讨论】:

  • 太短了,不知道出了什么问题

标签: android audio error-handling media-player


【解决方案1】:

尝试设置 OnPreparedListener 并在其中调用 start 方法。像这样:

MediaPlayer mp = new MediaPlayer();
mp.setOnPreparedListener( new OnPreparedListener() {

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

【讨论】:

    【解决方案2】:

    我终于通过在支持音频的模拟器上运行解决了这个问题!!

    不敢相信这么简单!

    窗口 > AVD 管理器 > 编辑您的 AVD(为了安全起见,我创建了一个新的,因为我是从快照运行的)> 硬件 > 新建 > 音频播放支持

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多