问题标签 [grafika]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
41 浏览

android - 在方向改变时保持表面(使用 GLSurfaceView)

即使在销毁和重新创建我的活动(由于方向更改)时,我也试图继续进行一些渲染(不重置它)。

我查看了GrafikaDoubleDecodeActivity,它非常清楚地说明了如何做到这一点。但是,它通过使用TextureView效率较低的 a 来实现,因为绘制的帧不会直接传递给表面合成器 (SurfaceFlinger)。我的用户体验受到影响。我需要的是一个GLSurfaceView(或者可能是一个SurfaceView)。

问题是我不知道如何在我的活动的不同实例中保留SurfaceView“ ”(如果是这样的话)。SurfaceTexture

有人可以帮我解决这个问题吗?

0 投票
0 回答
133 浏览

android - grafika 在后台使用 camera2 连续编码视频

我使用 grafika 库通过旧的相机 API 对视频帧进行连续编码。

因为旧的相机 API 需要一个可见SurfaceView的来接收来自相机的数据,所以我正在尝试使用 camera2 来替换旧的相机 API。

camera2 API 可以ImageReader用来接收没有可见 View 的数据,所以我尝试使用ImageReader来替换 SurfaceView。但是我遇到了一个奇怪的问题,从grafika 示例完成后我无法成功createCaptureSessionmDisplaySurface = WindowSurface(mEglCore, imageReader.surface, false)

没有来自onConfigureFailedof 的消息createCaptureSession,所以我不知道这些发生了什么。

有人可以帮我弄清楚吗?或者告诉我如何使用camera2对视频的帧数据进行编码?

0 投票
0 回答
139 浏览

java - android grafika ContinuousCapture 活动问题

我正在使用 android grafika 进行视频录制,我会更改所有我想要的东西。一切都很完美。

只有2个问题:

  1. 如果我在 7 秒后保存视频,例如 2 秒或低于 7 秒,那么它会保存一个 7 秒的视频。
  2. 如果我拍摄 15 秒或更长时间的视频,则需要最后7 秒的视频。

我想解决:

  1. 如果我在 7 秒视频后保存 2 秒,然后将视频保存 2 秒

  2. 我想保存7 秒的视频

我关注的这个 Github 链接:Grafika

如何解决这2个问题?

笔记:

如果您在portrait模式下遇到方向问题,请点击以下链接:

在人像模式下录制视频时出现方向问题android grafika

0 投票
2 回答
520 浏览

android - 如何在录制时向视频添加音频 [ContinuousCaptureActivity] [Grafika]

我使用ContinuousCaptureActivity.java实现视频录制。这是完美的工作。

现在我想在这个视频中添加音频。

我知道使用MediaMuxer可以在视频中添加音频。

但问题是我不知道如何使用MediaMuxer.

此外,如果您有任何其他解决方案,请MediaMuxer与我分享任何链接或文档。

我也有演示AudioVideoRecordingSample。但我不明白如何将它与我的代码合并。

如果有人知道,请向我解释。

提前致谢。

0 投票
1 回答
201 浏览

android - 在人像模式下录制视频时出现方向问题android grafika

我设置了设备方向Landscape模式,然后它完美地保存了视频。如果我拍摄双方的视频。

但是我设置了设备方向Portrait模式这个工作很奇怪。

例如:

下面是我录制视频时的屏幕截图:

但是当我保存视频并在 MXPlayer 中查看时,它看起来像这样:

我使用下面的代码:

更新:

我也尝试在我开始的地方添加setOrientationHintMediaMuxer

0 投票
1 回答
1591 浏览

android - 在android中记录屏幕的选定区域

我正在尝试实现屏幕录像机。我跟着grafika。只需将 Surface 提供encoder.getInputSurface()给 VirtualDisplay 即可。现在我的任务是对屏幕的某个部分进行编码。因此,我试图使用 SurfaceTexture 修改编码器的输入 Surface(我认为这是正确的方法)。但我无法使用创建的表面来记录屏幕,当我将此表面传递给 VirtualDisplay 时,我没有得到任何回调。我也尝试使用 TextureMovieEncoder(来自 grafika)进行录制,但可能我不知道正确的方法。

我试图通过以下有用的链接来理解。 解码器的输出表面如何传递到编码器的输入表面?

Android:是否可以在没有 SurfaceView 的情况下创建 SurfaceTexture?

而且我确信 grafika 是一个很棒的教程,但我被卡住了。

请提出解决方案或其他可行的方法。我现在被困了好几天。

0 投票
0 回答
590 浏览

java - TextureView 使用 OpenGL 显示空白屏幕

我正在尝试在我的 android 应用程序中使用 open gl 。我遵循了这个文档https://developer.android.com/training/graphics/opengl/draw并且我能够使用 GlSurfaceView 绘制三角形和一些复杂的动画。现在我想在列表中使用这些,但不能用 GLSurfaceView 完成,所以我切换到 TextureView 。这是一个展示如何在 Grafika 中执行此操作的实现 https://github.com/google/grafika/blob/master/app/src/main/java/com/android/grafika/TextureViewGLActivity.java

现在,当我将代码放在 doAnimation() 中时,它不起作用..我正在附加一些代码

公共类三角形{私有静态最终字符串标签=“三角形”;

这是纹理视图类

0 投票
1 回答
542 浏览

android - 使用 MediaCodec 和 GLSurfaceView 浏览视频

我正在尝试使用输出到 GLSurfaceView 的 MediaCodec 解码器来实现通过视频文件的搜索。该解决方案基于 Bigflake 示例和流行评论。它适用于SurfaceView,但我在使用时遇到了一些麻烦GLSurafaceView:渲染帧总是黑色

查看实现:

OutputSurface来自Bigflake,以及TextureRenderer 链接

这是基本的解码器实现:

如何TextureRenderer正确绘制到GLSurfaceView?我做错了什么?它是不正确的 OpenGL 绘图还是GLSurfaceView未链接到MediaCodec输出表面?

0 投票
1 回答
107 浏览

android - 由 Matrix.rotateM 引起的视频中的 Camera2 OpenGL 随机故障

我使用了 Grafika 应用程序并将其修改为使用 Camera2 API 而不是旧的 API。我需要使用 OpenGL 解决方案,因为我需要在视频顶部绘制水印,而 Grafika 非常有用。不幸的是,我的输出视频正在以错误的方向随机“闪烁”帧。我正在寻求解决闪烁的问题,或者至少了解它发生的原因。

最初,我设法成功地录制了有声视频,并在顶部绘制了水印,但是由于我需要纵向视频,因此视频的方向错误。为了实现这一点,我曾经MediaMuxer.serOrientationHint()将输出文件配置为纵向,并且还对变换矩阵应用了旋转以确保 OpenGL 帧以纵向绘制,如下所示:

请参阅下面的常规帧和故障帧。在一个 5 秒的视频中,大约 20-30 个不连续的帧可能是这样的。

好框架 坏帧

0 投票
0 回答
42 浏览

android - 如何将 Activity(rootview,其他)放到 SurfaceTexture

我想让一个 Android 应用程序成为另一个应用程序的一部分(类似于统一 3d 游戏中的浏览器),为此第一个提供了第二个 SurfaceTextures(只能以这种方式使用)。是否有任何代码示例如何将(渲染)正常的 android 活动(可能是 rootview,idk)放入此 SurfaceTexture?也许像使用https://github.com/google/grafika/blob/master/app/src/main/java/com/android/grafika/PlayMovieSurfaceActivity.java 之类的 ?