2011-01-13 74 views
4

我使用SurfaceView播放视频。我使用三星Galaxy Tab进行测试。余集大小:为何播放视频的SurfaceView(Android)的最大尺寸是1024x1024?

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中得到消息:

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

我只看到黑屏。

为什么? 在我的应用程序中,我使用视频缩放,有时我需要获得尺寸大于1024的视频。

+0

任何人都知道这一点? – sinek 2012-05-04 12:30:03

回答

1

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

任何想法?

1

我仍然有2个想法:

1)请对所有设备变焦极限(设置视频的最大尺寸为屏幕的一侧的最大尺寸)。但在这种情况下,有时候放大一般不会,否则他会变得很小。

2)抓住这个关于错误的日志,并向用户显示一个对话,在这样的缩放视频播放将无法正常工作。但如何抓住这个日志?

您对此有何看法?