MediaPlayer.OnPreparedListener未调用

时间:2015-06-02 08:15:15

标签: java android

我遇到了onPrepared()之后没有调用MediaPlayer.prepareAsync() - 方法的问题。奇怪的是,它确实在第一次工作,只有在重新实现MediaPlayer后才失败。这是我的“精简”代码:

public void loadVideoStream(String videoUrl, MediaPlayer.OnPreparedListener opl, Context ctx) {
    try {
        this.stop(); //player.stop,reset,release,=null

        player = new MediaPlayer();
        player.setOnErrorListener(new MediaPlayer.OnErrorListener() {
            @Override
            public boolean onError(MediaPlayer mp, int what, int extra) {
                Log.d(TAG, "onError: "+what + " " + extra);
                return false;
            }
        });
        player.setOnPreparedListener(opl);
        player.setDataSource(ctx, Uri.parse(videoUrl));

        if (this.surface != null) {
            player.setSurface(this.surface);
            player.prepareAsync();
            this.surface = null;
        }

    } catch (IOException e) {
         e.printStackTrace();
    }
}

一切似乎进展顺利,MediaPlayer不会抛出任何错误/警告,但不会调用onPrepared-Statement(视频应该启动并且某些UI工作要完成)。我还确定,在调用prepareAsync()之前已经创建了曲面,但没有成功。文件格式也应该没问题,因为如果我第一次使用它,它可以正常工作。

任何提示/想法都赞赏!

0 个答案:

没有答案