当电影绘制到画布中时 Android 错误信号 11

2024-01-25

我正在开发一个 Android 应用程序,我试图在其中显示 GIF 图像。 为此,我使用 Movie 类并创建了一个扩展 View 的类 GIFView。我从 Movie.decodeFile 方法获取 Movie 实例。

调用 Movie.draw(canvas) 时出现错误。

04-28 13:44:18.001: A/libc(24883): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 24883 (mple.channel002) 

有相关代码:

    public void setGif(File gif)
    {
        movie = Movie.decodeFile(gif.getAbsolutePath());
    }

    @Override
    public void draw(Canvas canvas) {
        // TODO Auto-generated method stub
        super.draw(canvas);
        canvas.drawColor(0xFFCC3C6C);            

        if(movie != null)
        {
            if(movieStart == 0)
                movieStart = android.os.SystemClock.uptimeMillis();
            int duration = Math.max(movie.duration(), 1000);
            movie.setTime((int)(duration - ((android.os.SystemClock.uptimeMillis() - movieStart)%duration)));

            movie.draw(canvas, 10, 10);//TODO CRASH

            invalidate();
        }
    }

我在 main 中创建一个 GIFView,调用上面的 setGIF 方法为其提供路径,并使用 FillParent 参数将其添加到布局中。 当我在 ImageView 中打印此图像时它起作用。 在画布上绘制可绘制对象而不是 GIF 也可以。 所以问题似乎与 Movie 实例有关。

我使用这些链接来制作 GIFViewhttp://weavora.com/blog/2012/02/07/android-and-how-to-use-animated-gifs/ http://weavora.com/blog/2012/02/07/android-and-how-to-use-animated-gifs/

我也尝试过这种方式,但 movie.draw 出现同样的错误有关 Android 的 Movie 类的信息 https://stackoverflow.com/questions/7373718/info-about-the-movie-class-for-android

编辑1: 我在 Android 4.4.2 / snapdragon 801 / 2GB 的 Oppo Find 7a 上进行测试 将 movie.draw(canvas, 10, 10) 更改为 movie.draw(canvas, 10f, 10f) 不会改变任何内容。

编辑2: 我刚刚在一台装有 Android 2.3.5 的旧中兴设备上进行了测试,它工作正常。 因此,在 Find7a 设备上启动时出现问题,但我不知道是什么:(


我找到了另一个解决方案 - 您必须仅在您绘制电影的特定视图上禁用硬件加速器。使用下一行:

view.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

参考(视图级别)https://developer.android.com/guide/topics/graphics/hardware-accel.html#controlling https://developer.android.com/guide/topics/graphics/hardware-accel.html#controlling

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当电影绘制到画布中时 Android 错误信号 11 的相关文章

随机推荐