android - 将 android.media.Image 绘制到表面

标签 android exoplayer

我有这个 android 应用程序。

它使用 SurfaceView,从那里我通过 SurfaceHolder 获得 Surface

它还使用 ExoPlayer 来播放视频。但是我已经实例化了一个 ImageReader,获取它的 Surface 并传递给 ExoPlayer

现在,我在 ImageReader.OnImageAvailableListener#onImageAvailable 中访问最新的 Image

我想操作 Image 并将新数据发送到“SurfaceViewSurface

如何将 android.media.Image“绘制”到 android.view.Surface

最佳答案

这个问题我不是很清楚。 获取 android.media.Image 的方法是通过 Camera2 API,您可以在那里提供一个表面,“相机”将在其上绘制。请引用Camera2Video example

获取 Image 对象的另一种方法是从 ImageReader(例如在解码视频时)。在这种情况下,您想要绘制图像,但无法为 ImageReader 提供表面(存在未显示的内部表面)。在这种情况下,您可以在 SurfaceView 上绘制图像。 假设是这种情况,您需要将 Image 转换为 Bitmap 对象。

你们讨论了如何执行这个 here

关于android - 将 android.media.Image 绘制到表面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32208981/

相关文章:

android - Exoplayer:如何通过耳机播放音频?

android - 如何在 Exoplayer 通知中设置自定义布局和字体?

android - 将敏感数据保存到 Bundle 中是一个问题吗?

android - 使用 Picasso 和 Robolectric 的虚假测试失败

android - 使用 Intent 切换 Activity 的应用程序崩溃

java - 方法不会重写或实现父类(super class)型 ExoPlayer 中的方法

java - Exo Player是否可以动态播放mp3文件的范围而不进行剪辑?

android-layout - ImageView相对于LinearLayout背景的优势

java - SQLite 异常 : no such column in Android

android - Exoplayer 2.9.4 平滑流