我正在研究Android中的视频播放器。当我在创建方法中创建表面持有者时,它没有创建。但是当我在按钮onclick方法中创建表面持有者时,它创建了
我的编码是,
preview=(VideoView)findViewById(R.id.surface);
preview.setEnabled(true);
preview.bringToFront();
holder=preview.getHolder();
holder.setFixedSize(400, 400);
mp=new MediaPlayer();
mp.setDataSource("path");
mp.setDisplay(holder);
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setOnBufferingUpdateListener(playerActivity.this);
mp.setOnPreparedListener(playerActivity.this);
mp.prepare();
mp.start();
答案 0 :(得分:1)
mp.prepare();
mp.start();
prepare()是异步的,这意味着,当你已经调用了mp.start时,它可能还没有完成。 “表面未创建”是什么意思?你只是说视频不播放?
无论如何,您应该使用MediaPlayer.OnPreparedListener
并在onPrepared()
中启动媒体。