问题标签 [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.
android - 在方向改变时保持表面(使用 GLSurfaceView)
即使在销毁和重新创建我的活动(由于方向更改)时,我也试图继续进行一些渲染(不重置它)。
我查看了Grafika的DoubleDecodeActivity,它非常清楚地说明了如何做到这一点。但是,它通过使用TextureView
效率较低的 a 来实现,因为绘制的帧不会直接传递给表面合成器 (SurfaceFlinger)。我的用户体验受到影响。我需要的是一个GLSurfaceView
(或者可能是一个SurfaceView
)。
问题是我不知道如何在我的活动的不同实例中保留SurfaceView
“ ”(如果是这样的话)。SurfaceTexture
有人可以帮我解决这个问题吗?
android - grafika 在后台使用 camera2 连续编码视频
我使用 grafika 库通过旧的相机 API 对视频帧进行连续编码。
因为旧的相机 API 需要一个可见SurfaceView
的来接收来自相机的数据,所以我正在尝试使用 camera2 来替换旧的相机 API。
camera2 API 可以ImageReader
用来接收没有可见 View 的数据,所以我尝试使用ImageReader
来替换 SurfaceView。但是我遇到了一个奇怪的问题,从grafika 示例完成后我无法成功createCaptureSession
mDisplaySurface = WindowSurface(mEglCore, imageReader.surface, false)
没有来自onConfigureFailed
of 的消息createCaptureSession
,所以我不知道这些发生了什么。
有人可以帮我弄清楚吗?或者告诉我如何使用camera2对视频的帧数据进行编码?
java - android grafika ContinuousCapture 活动问题
我正在使用 android grafika 进行视频录制,我会更改所有我想要的东西。一切都很完美。
只有2个问题:
- 如果我在 7 秒后保存视频,例如 2 秒或低于 7 秒,那么它会保存一个 7 秒的视频。
- 如果我拍摄 15 秒或更长时间的视频,则需要最后7 秒的视频。
我想解决:
如果我在 7 秒视频后保存 2 秒,然后将视频保存 2 秒
我想保存前7 秒的视频
我关注的这个 Github 链接:Grafika
如何解决这2个问题?
笔记:
如果您在portrait
模式下遇到方向问题,请点击以下链接:
android - 如何在录制时向视频添加音频 [ContinuousCaptureActivity] [Grafika]
我使用ContinuousCaptureActivity.java实现视频录制。这是完美的工作。
现在我想在这个视频中添加音频。
我知道使用MediaMuxer可以在视频中添加音频。
但问题是我不知道如何使用MediaMuxer
.
此外,如果您有任何其他解决方案,请MediaMuxer
与我分享任何链接或文档。
我也有演示AudioVideoRecordingSample。但我不明白如何将它与我的代码合并。
如果有人知道,请向我解释。
提前致谢。
android - 在人像模式下录制视频时出现方向问题android grafika
我设置了设备方向Landscape
模式,然后它完美地保存了视频。如果我拍摄双方的视频。
但是我设置了设备方向Portrait
模式这个工作很奇怪。
例如:
下面是我录制视频时的屏幕截图:
但是当我保存视频并在 MXPlayer 中查看时,它看起来像这样:
我使用下面的代码:
更新:
我也尝试在我开始的地方添加setOrientationHintMediaMuxer
android - 在android中记录屏幕的选定区域
我正在尝试实现屏幕录像机。我跟着grafika。只需将 Surface 提供encoder.getInputSurface()
给 VirtualDisplay 即可。现在我的任务是对屏幕的某个部分进行编码。因此,我试图使用 SurfaceTexture 修改编码器的输入 Surface(我认为这是正确的方法)。但我无法使用创建的表面来记录屏幕,当我将此表面传递给 VirtualDisplay 时,我没有得到任何回调。我也尝试使用 TextureMovieEncoder(来自 grafika)进行录制,但可能我不知道正确的方法。
我试图通过以下有用的链接来理解。 解码器的输出表面如何传递到编码器的输入表面?
和
Android:是否可以在没有 SurfaceView 的情况下创建 SurfaceTexture?
而且我确信 grafika 是一个很棒的教程,但我被卡住了。
请提出解决方案或其他可行的方法。我现在被困了好几天。
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() 中时,它不起作用..我正在附加一些代码
公共类三角形{私有静态最终字符串标签=“三角形”;
这是纹理视图类
android - 由 Matrix.rotateM 引起的视频中的 Camera2 OpenGL 随机故障
我使用了 Grafika 应用程序并将其修改为使用 Camera2 API 而不是旧的 API。我需要使用 OpenGL 解决方案,因为我需要在视频顶部绘制水印,而 Grafika 非常有用。不幸的是,我的输出视频正在以错误的方向随机“闪烁”帧。我正在寻求解决闪烁的问题,或者至少了解它发生的原因。
最初,我设法成功地录制了有声视频,并在顶部绘制了水印,但是由于我需要纵向视频,因此视频的方向错误。为了实现这一点,我曾经MediaMuxer.serOrientationHint()
将输出文件配置为纵向,并且还对变换矩阵应用了旋转以确保 OpenGL 帧以纵向绘制,如下所示:
请参阅下面的常规帧和故障帧。在一个 5 秒的视频中,大约 20-30 个不连续的帧可能是这样的。
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 之类的 ?