问题标签 [textureview]

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 投票
6 回答
29414 浏览

android - TextureView 的裁剪相机预览

我有一个具有固定宽度和高度的 TextureView,我想在其中显示一个相机预览。我需要裁剪相机预览,使其在我的 TextureView 中看起来不会被拉伸。如何进行种植?如果我需要使用 OpenGL,如何将 Surface Texture 绑定到 OpenGL 以及如何使用 OpenGL 进行裁剪?

此外,在正确进行预览后,我需要能够实时读取裁剪图像中心的像素。

0 投票
2 回答
4475 浏览

android - Android多摄像头预览

是否可以同时将 android 相机预览广播到 2 个不同的 SurfaceView 控件中?我见过一些应用程序可以实时将效果显示到不同的预览中,它们是如何实现的?我阅读了有关 TextureView 的信息,这是要使用的视图吗?在哪里可以找到多个同时进行相机预览的示例?

谢谢

0 投票
1 回答
820 浏览

android - 如何测量使用 TextureView 的 android 应用程序的 FPS?(我正在使用 OpenGL)

我的渲染线程中有一个无限循环。我尝试测量假设每次调用都会eglSwapBuffers绘制一个新帧,但这会给我带来 200 fps 的结果,这是不可能的,对吧?刷新率不能超过60?

现在我正在做同样的事情,但也使用surfaceTexture.getTimeStamp()了 SurfaceView 的 SurfaceTexture。仅当上一次迭代中返回的时间戳与当前迭代中返回的时间戳不同时,我才认为帧已被绘制。是一种可接受的测量方式吗?当我不绘图时,这显示 50-55fps。即循环只有eglSwapBuffers()getTimeStamp调用。

0 投票
1 回答
775 浏览

android - Android TextureView:调用getBitmap时视频显示灰框

我正在开发 android 应用程序,它可以在用户执行按钮单击时从视频中抓取帧,该 android 应用程序被配置为使用 TextureView 播放视频。为了将帧捕获为位图,我正在使用:

它工作正常,但“getBitmap”需要很长时间(640x480 帧大约需要 150-200 毫秒)。问题是在调用 getBitmap 时,视图上会显示灰色框架。这看起来像是有什么东西在闪烁。有没有办法解决这个问题?

谢谢

0 投票
1 回答
2353 浏览

android - 如何清理textureview的内容。我在列表视图中使用带有纹理视图的媒体播放器

我想在 ListView 中播放很多视频。就像名为“vine”的应用程序一样。我使用 TextureView 和 MediaPlayer 来显示视频。我们知道 ListView 将重用视图。由于这种机制,我遇到了问题。例如:在可见区域我正在播放视频A,所以,当我向上滚动时,视频A将不可见,所以我想播放视频B,ListView可能会重用视图播放视频A,所以,当我开始播放视频 B,首先视图将显示 A 的图像,然后刷新到视频 B 的内容。这是我的问题。我不知道如何清理 TextureView 的内容。有没有人告诉我如何解决这个问题。非常感谢!

0 投票
1 回答
2690 浏览

android - 视频长宽比不正确,我设置了1.333的比例,视频有1:1

我使用帧布局,在其上绑定我的视频播放器,如下所示:

这是来自 TextureViewVideoPlayer 的 onVideoSizeChanged 函数:

如您所见,它获取视频的视频宽度和高度,计算比例,然后获取显示高度,并制作比例以查看视频比屏幕大(或小)多少,然后它使用该比率创建视频的参数,并在纹理视图上设置此参数。

在 xml 中,我绑定我的播放器的 VideoFrame 也有这个:

现在,如果我保持这样,视频会被拉伸,即使它看起来像一个矩形,视频顶部和底部的一部分也会消失(1:1,宽度和高度相同,并且高度大于屏幕)。现在,如果我不使用比率,并使用视频的宽度和高度(640 x 480)创建参数,它将是一个小方块。(比例 1:1),并拉伸。知道如何避免这种情况吗?

PS:我的纹理视图实际上是一个方形纹理视图,它有这个 onMeasure 功能:

我已将其更改为:

希望这可以解决我的问题。

0 投票
0 回答
586 浏览

android - TextureView 在 Nexus4 上自动旋转视频流(但不在 Galaxy S4 上)

在 TextureView 上播放视频流时,我在 Galaxy S4 和 Nexus4 中看到了不同的行为。

视频源是 Android 以纵向模式录制的,因此视频旋转了 90 度。(Android 相机的默认方向是横向,因此要拍摄纵向视频,我们需要将视频顺时针旋转 90 度)所以在播放时我首先检查视频的方向(通过测量宽度和高度)以及宽度是否大于高度, 通过下面的代码将 TextureView 旋转 90 度。

这适用于 Galaxy S4 或 Xepria Z,但不适用于 Nexus4 或 Galaxy S2。似乎在 Nexus4 中,TextureView 将视频自动旋转 90 度,因此与下面的代码一起,视频最终旋转了 180 度。

现在我无法管理设备之间的这种行为差异。有没有人有相同的经验并且知道如何解决它,非常感谢您的帮助。

0 投票
1 回答
6364 浏览

android - TextureView setBackgroundColor 不起作用

我试图简单地更改 TextureView 的背景颜色。我希望通过半透明相机预览可以看到这种颜色。由于某种原因,它没有。如果我从 onSurfaceTextureAvailable 中完全删除相机预览,则视图保持白色(或看不到)。有任何想法吗?我正在尝试实现一个 TextureView 框,它有时包含相机预览,而其他时候是我选择的纯色。谢谢。

0 投票
2 回答
2144 浏览

android - 半透明纹理视图不起作用

我无法通过 setAlpha 方法更改 TextureView 的透明度,以将其屏蔽为半透明,因为它是 android SDK 所承诺的。例如 mTextureView.setAlpha(0.5f) 没有任何效果。

0 投票
0 回答
617 浏览

android - 在另一个视频上覆盖具有透明度的视频

我需要在另一个普通视频上显示(不保存)带有 alpha 通道的视频。我尝试将一个 TextureView 布局在另一个之上,并从两个媒体播放器流式传输视频,但这并没有帮助,因为 MadiaPlayer 无法播放具有透明度的视频。我有透明视频的 mov 格式。

有人解决了同样的问题吗?