Android SurfaceView 在视频后显示图像(清晰表面)

标签 android image video surfaceview

我的任务 - 在 SurfaceView 上播放视频,停止在 SurfaceView 中显示图像

我的游戏代码

mPlayer.setOnCompletionListener(onCompletionListener);
mPlayer.setDisplay(view.getHolder());
mPlayer.reset();
mPlayer.setDataSource(file.getAbsolutePath());
mPlayer.prepare();
mPlayer.start();

视频播放正常

在完成

mPlayer.reset();
mPlayer.setDisplay(null);
view.setBackgroundDrawable(Drawable.createFromPath(file.toString()));

但图像是透明的,在背景上我看到最后一个视频帧 - 这不好。表面有多清晰?

我试试看

holder.lockCanvas()

但是这会返回 null,为什么?

最佳答案

我有同样的问题,我在播放器发布后使用这两行修复了它。

surfaceViewHolder.setFormat(PixelFormat.TRANSPARENT);
surfaceViewHolder.setFormat(PixelFormat.OPAQUE);

关于Android SurfaceView 在视频后显示图像(清晰表面),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18415940/

相关文章:

Java:如何读取视频文件中的可用音轨?

android - 如何在服务中启动新线程?

Android NavUtils 不触发 getSupportParentActivityIntent api 15

android - 如何使用android studio设置apk发布文件名?

css - 如何创建三 Angular 形响应式背景图像?

java - 我在 Java 中遇到三个错误,但我不知道如何修复它们

Python OpenCV : inverting colors in a numpy image array

依赖于库 R 的 Android Maven 构建失败

video - 将 SWF 文件转换为 VIDEO 文件的服务器端解决方案

无法播放 Libavcodec (ffmpeg) 编码示例的视频输出