Android MediaPlayer视频未显示
我在应用程序上播放视频时遇到了一个大问题。 我有这个游戏,想在某处播放一些视频,但在最好的情况下,我可以听到声音,但看不到视频 这是持卡人Android MediaPlayer视频未显示,android,Android,我在应用程序上播放视频时遇到了一个大问题。 我有这个游戏,想在某处播放一些视频,但在最好的情况下,我可以听到声音,但看不到视频 这是持卡人 public void surfaceCreated(SurfaceHolder holder) { level.playerholder = holder; gameLoopThread.setRunning(true); renderLoopThread.setRunning(true);
public void surfaceCreated(SurfaceHolder holder) {
level.playerholder = holder;
gameLoopThread.setRunning(true);
renderLoopThread.setRunning(true);
gameLoopThread.start();
renderLoopThread.start();
}
mediaPlayer.setDisplay(playerholder);
这是mediaplayer的创建,应该显示视频
while(!playerholder.isCreating());
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDisplay(playerholder);
switch(startVideo){
case 1:
try {
mediaPlayer.setDataSource(context,Uri.parse("android.resource://com.getfun.treevolve/raw/getfunvideo"));
mediaPlayer.prepare();
} catch (IllegalArgumentException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SecurityException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalStateException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
break;
}
Log.d("player", "Sec: " + Integer.toString(mediaPlayer.getDuration()));
Log.d("player", "Video width: " + Integer.toString(mediaPlayer.getVideoWidth()));
mediaPlayer.start();
使用此设置,我的日志仅显示0。好像视频是错的。
如果在第二行中,我删除了持有者
public void surfaceCreated(SurfaceHolder holder) {
level.playerholder = holder;
gameLoopThread.setRunning(true);
renderLoopThread.setRunning(true);
gameLoopThread.start();
renderLoopThread.start();
}
mediaPlayer.setDisplay(playerholder);
正在工作,日志中的所有信息都正确显示,但我听到了音频,但没有看到任何内容
谢谢你的帮助,我真的需要这个 我认为对于视频,您应该使用
VideoView
VideoView要求我编辑布局xml文件,但我没有,也不想使用任何布局:-(来自文档:“MediaPlayer类可用于控制音频/视频文件和流的播放。有关如何使用此类中的方法的示例,请参见VideoView。”您不需要xml文件,您可以通过编程方式创建VideoView,并随时将其添加到活动的视图层次结构中。您好,谢谢Karakuri。我正在尝试查找一些有关如何通过编程方式添加VideoView的示例。您可以链接我吗?非常感谢VideoView.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));