为什么播放视频的SurfaceView(Android)最大尺寸为1024x1024?

时间:2011-01-13 15:55:38

标签: android

我使用SurfaceView播放视频。我使用三星Galaxy Tab进行测试。我设定了尺寸:

LinearLayout.LayoutParams videoViewParams = new   LinearLayout.LayoutParams(m_mainView.getPictureWidth(), m_mainView.getPictureHeight());       
mPreview = (SurfaceView) videoView.findViewById(R.id.surface); 
mPreview.setLayoutParams(videoViewParams);

当mainView.getPictureWidth()或mainView.getPictureHeight()高于1024时 - 我在logcat中收到消息:

  

01-12 11:49:15.839:ERROR / SurfaceFlinger(2491):LayerBuffer init temp buff失败,w = 1210,h = 922,exp max = 1024x1024 on 0

我只看到黑屏。

为什么呢? 在我的应用程序中,我使用视频缩放,有时我需要获得大小超过1024的视频。

2 个答案:

答案 0 :(得分:1)

怀疑这个限制只针对三星。检查模拟器 - 一切正常!找到一个主题 - a similar problemt人们要求他测试媒体播放器(他说,对于所有设备,应用程序正常工作)。一个用户在Samsung Galaxy S上是同样的问题。只有他最大= 800x800。即,这里获得的屏幕尺寸的最大值,并形成限制。

有什么想法吗?

答案 1 :(得分:1)

我还有两个想法:

1)为所有设备设置缩放限制(将视频的最大尺寸设置为屏幕一侧的最大尺寸)。但在这种情况下,有时放大一般不会或他会非常小。

2)抓住关于错误的日志,并向用户显示一个对话框,在这样的缩放视频中播放将无效。但是如何捕获这个日志?

您如何看待这个?