0

我正在 OUYA 设备上测试我的视频播放器,它几乎立即因“尺寸太大”错误而崩溃(请参阅下面的 logcat 转储)。如果有人知道解决方法或设置最大尺寸的方法,我将不胜感激。

D/MySurface(2651):surfaceCreated
W/InputDispatcher(319):试图取消注册已经未注册的输入频道“41daf688 tv.ouya.console.wallpaper.OozeService (server)”
I/WindowState(319): WIN DEATH: Window{41daf688 tv.ouya.console.wallpaper.OozeService paused=false}
I/WindowManager(319): WINDOW DIED Window{41daf688 tv.ouya.console.wallpaper.OozeService paused=false}
E/SurfaceFlinger(109):尺寸太大 2560 x 1472
E/SurfaceFlinger(109):createNormalSurfaceLocked() 失败(无效参数)
W/WindowStateAnimator(319):OutOfResourcesException 创建表面
I/WindowManager(319):表面内存不足!寻找泄漏...
W/WindowManager(319):没有泄漏的表面;杀死应用程序!
W/ActivityManager(319):在调整 0 时杀死进程释放内存
W/ActivityManager(319): Killing ProcessRecord{41d9cae8 2651:example.android.player/u0a37} (adj 0): 可用内存
W/WindowManager(319):看起来我们已经回收了一些内存,清除了表面以进行重试。
W/WindowManager(319):由于内存故障,等待下一个布局

我也尝试通过这篇文章更改分辨率,但没有成功:http ://forums.ouya.tv/discussion/2170/setting-resolution-not-working

4

1 回答 1

0

我找到了一个解决这个问题的方法,使用 Surface 回调,并为宽度和高度设置了最大值:

@覆盖
公共无效surfaceCreated(SurfaceHolder持有人){
    矩形矩形 = holder.getSurfaceFrame();
    if (rect.width() > maxWidth || rect.height() > maxHeight) {
        holder.setFixedSize(maxWidth, maxHeight);
    }
}
于 2013-11-07T17:48:28.727 回答