Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android三星Galaxy S2/S3设备位图渲染到ImageView问题_Android_Ffmpeg_Android Imageview_Android Ndk R5 - Fatal编程技术网

Android三星Galaxy S2/S3设备位图渲染到ImageView问题

Android三星Galaxy S2/S3设备位图渲染到ImageView问题,android,ffmpeg,android-imageview,android-ndk-r5,Android,Ffmpeg,Android Imageview,Android Ndk R5,三星安卓设备出现了一个非常奇怪的位图渲染问题。让我简单地讨论一下我所做的事情 我从视频中提取帧,并使用ffmpeg在ImageView中进行渲染。下面的代码给了我一个位图对象,它是从JNI回调返回的 img_convert_ctx = sws_getContext(pCodecCtx->width, pCodecCtx->height, pCodecCtx->pix_fmt, target_width, target_height

三星安卓设备出现了一个非常奇怪的
位图
渲染问题。让我简单地讨论一下我所做的事情

我从视频中提取帧,并使用ffmpeg在
ImageView
中进行渲染。下面的代码给了我一个位图对象,它是从
JNI
回调返回的

    img_convert_ctx = sws_getContext(pCodecCtx->width,
            pCodecCtx->height, pCodecCtx->pix_fmt, target_width,
        target_height, PIX_FMT_RGB24, SWS_BICUBIC, NULL, NULL,NULL);

    sws_scale(img_convert_ctx,(const uint8_t* const *) 
        pFrame->data,pFrame->linesize, 0, pCodecCtx->height,pFrameRGB->data, 
pFrameRGB->linesize);
接下来,我只是将
位图设置为
ImageView
。现在的问题是,我得到的
位图在除三星S2/S3之外的大多数设备上都能很好地渲染

A>在以下方面工作良好:-屏幕截图1

  • Nexus 4
  • HTC One/HTC One x
  • LG擎天柱
  • 索尼Experia
  • 三星Galaxy S Plus/三星展览(安卓2.3)
  • 问题: B>三星Galaxy S2和S3:第二个屏幕截图。

    对于案例B,如果您注意到,视频的一部分正在右侧渲染

    我已尝试将我从
    JNI
    获得的
    位图保存为SD卡中的jpg,并再次读取该位图以设置
    ImageView
    ,结果它正常工作。我不明白我从
    JNI
    回调中得到的原始位图出了什么问题,是三星S2硬件吗?请有人帮我做这件事


    如果设备上本地有视频,为什么要使用ffmpeg?您只需使用ThumbnailUtils.CreateVideoThumnail(指向视频文件的路径,MediaStore.Images.Thumbnails.MINI\u-KIND);它需要从特定位置的视频中取出帧,这就是为什么ffmpeg