我有一个VideoView,我从远程服务器streamvideo。 大多数时候它会非常顺利地播放video。 但有时会显示错误讯息“对不起,此影片无法播放”。 我有一个预感,这是更多的支持的video格式。 但是,我不知道哪些是支持的格式。 我的问题是“我怎样才能捕捉到这个错误(例如,防止错误消息出现)”? 我在这个项目上使用Android 2.2。 任何build议将不胜感激。 🙂
我有以下代码将video作为原始资源,启动video并循环播放,但是我需要video在到达剪辑结束时以无缝方式进行循环,并再次启动剪辑,闪烁一瞬间,我真的不能为我的应用程序。 public class Example extends Activity { VideoView vv; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); vv = (VideoView)findViewById(R.id.VideoView01); //Video Loop vv.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { public void onCompletion(MediaPlayer mp) { vv.start(); //need to make transition seamless. } }); Uri uri = Uri.parse("android.resource://com.example/" + R.raw.video); vv.setVideoURI(uri); vv.requestFocus(); […]
我一直在寻找一种方法,在start()方法运行之前摆脱VideoView上令人讨厌的黑色初始屏幕。 我已经尝试与小部件上的背景图像,但它并不像预期的那样工作。 我也尝试在VideoView顶部的video中放置第一帧的图像,并在stars()方法之后隐藏它。 添加onPrepared侦听器来启动video,然后隐藏图像。 这种方法很有效,但是在转换中有一个可怕的闪烁,我不知道如何摆脱它。 感谢您的回复。 添加MediaController根本没有效果。 问题依然存在(我仍然看到黑色闪烁),我不想让video控件可见。 我的代码如下所示: VideoView vSurface= (VideoView) findViewById(R.id.surfaceView1); vSurface.setVideoURI(Uri.parse("android.resource://com.mypackage/" + R.raw.video1)); vSurface.setVisibility(View.VISIBLE); vSurface.setOnPreparedListener(this); vSurface.setDrawingCacheEnabled(true); vSurface.setOnErrorListener(this);
我试图从本质上复制Android市场上最新的YouTube应用程序的function。 观看video时,有两种独立的布局,一种是纵向显示附加信息,另一种是横向显示video。 YouTupe应用程序在肖像模式 横向模式下的YouTube应用 (抱歉的照片的随机性,但他们是我能find的实际布局的第一个图片) 这很容易做到 – 只需在layout-land中指定一个可选的布局,一切都会很好。 YouTube应用程序确实做得很好(以及我想要复制的内容)是在方向更改上,video继续播放,不必从头开始重新缓冲。 我已经知道覆盖onConfigurationChange()并设置新的LayoutParameters将允许我调整video的大小而不强制重新制止 – 但是当多次旋转屏幕时video会随机缩放到不同的宽度/高度。 我试过在VideoView上做各种各样的invalidate()调用,试着在父亲的RelativeLayout容器上调用RequestLayout(),尽可能地尝试尽可能多的东西,但是我似乎无法使它正常工作。 任何build议将不胜感激! 这是我的代码: @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { questionText.setVisibility(View.GONE); respond.setVisibility(View.GONE); questionVideo.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); } else { questionText.setVisibility(View.VISIBLE); respond.setVisibility(View.VISIBLE); Resources r = getResources(); int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 150.0f, r.getDisplayMetrics()); questionVideo.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, height)); } } 编辑:我已经发现了logcat一些有趣的输出,当我的video旋转似乎是罪魁祸首 – […]