草庐IT

android - 处理来自 Mediacodec 输出的帧并在 Android 上更新帧

我正在做一个关于图像处理的项目。我实时接收原始h264视频流并使用MediaCodec对其进行解码。我已在TextureView或SurfaceView上成功显示解码视频。现在我想处理每一帧,使用OpenCV4Android对其进行处理并在屏幕上显示更新的视频帧。我知道OpenCV有一个示例项目演示了如何处理来自手机摄像头的视频帧,但我想知道如果我有另一个视频源该怎么做。还有一些关于TextureView的问题:SurfaceTextureListener的onSurfaceTextureUpdated()有什么作用?如果我在这个函数中调用getBitmap(),那么这是否意味着我得到

android - 应用程序在 Nexus 6 Android marshmallow 上运行非常慢跳过 "n"帧

我需要一些帮助来解决一个我真的不明白的问题。我正在开发使用真实设备调试的应用程序。我有两个,第一个是摩托罗拉,资源非常低(Android5.0.2),这有助于我捕获更多错误;在这个应用程序中,应用程序奇怪地完美运行。第二个设备是Nexus6(Android6.0.1),应用程序在其中运行非常糟糕,运行速度非常慢(即使没有执行任何操作,例如打开菜单)它向我显示了这样一条消息:跳过33帧!应用程序可能在其主线程上做了太多工作。必要时我会使用异步任务,而我会使用主线程来处理尽可能少的事情。正如我之前所说,即使我只打开一个菜单,它也会显示“skkipedframes”消息(这意味着我没有下载或

android: SurfaceTexure,相机帧等待超时

我正在尝试使用MediaCodec和MediaMux,但遇到了一些麻烦。这是来自logcat的错误:12-1311:59:58.238:E/AndroidRuntime(23218):FATALEXCEPTION:main12-1311:59:58.238:E/AndroidRuntime(23218):java.lang.RuntimeException:Unabletoresumeactivity{com.brendon.cameratompeg/com.brendon.cameratompeg.CameraToMpeg}:java.lang.IllegalStateExcepti

android - Phonegap-跳过 33 帧!应用程序可能在其主线程上做了太多工作

我是android-phonegap应用程序开发的新手。我想显示服务器数据库中的学生详细信息。当我尝试连接数据库时,它在EclipseIDE中显示“跳过33帧!应用程序可能在其主线程上做了太多工作”。如果有的话,请给我解决方案或建议。 最佳答案 这是因为android的Choreographer没有获得执行正确显示所需的资源,因此跳帧。这主要发生在用户在主线程中执行大量操作时,请记住Android是单线程系统,只有一个主线程,所有其他子系统都挂接在该主线程上以执行Activity、服务、内容提供程序等任务。这就是为什么当您直接在ma

android - getUserMedia 在 Android Chrome 的第一帧卡住

我在支持getUserMediaApi的桌面浏览器上有一个工作代码,我可以在divvideoPreview中正确看到我的网络摄像头的视频预览。但是,当在Android设备上运行时,当我同意在Chrome浏览器中共享时,同样的代码会用我的前置摄像头拍照,然后预览会在第一帧卡住。navigator.getMedia=(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia);navigator.getMedia(//constraints{video:true,audio:false},

android - 有没有人设法使用 RenderScript 和新的 Camera API 获得 YUV_420_888 帧?

我正在使用RenderScript和Allocation从AndroidCamera2API获取YUV_420_888帧,但是一旦我从Allocation复制byte[],我只从构成帧的3个平面接收Y平面,而U和在byte[]中V平面值设置为0。我正在尝试模仿previos相机API中的onPreviewframe,以便在相机帧的应用程序处理中执行。我的分配创建如下:Type.BuilderyuvTypeBuilderIn=newType.Builder(rs,Element.YUV(rs));yuvTypeBuilderIn.setX(dimensions.getWidth());y

Android:如何延迟捕获相机拍摄的特定帧?

我正在研究一种光(LED)通信系统,它使用Android手机摄像头作为接收器,对摄像头帧进行阈值处理。为此,我使用预览的回调方法onPreviewFrame。为了更准确,需要每隔几帧延迟一次帧的捕获,以便系统重新同步。我的问题是:如何延迟单帧的捕获(而不是预览)?是否可能存在我不知道的相机fps速率的内部变化?如果是,我该如何限制或更改它们?*为了限制相机fps速率,我使用了setPreviewFpsRange、setAutoWhiteBalanceLock和setAutoExposureLock。 最佳答案 您可以尝试在API级别

android - 暂停/反转帧动画?

我有一个帧动画,使用AnimationDrawable播放效果非常好。在这里:...我需要能够在该帧动画仍在播放时以及在完成后不久的其他情况下反转它。使用AnimationDrawable似乎没有任何方法可以做到这一点。我还能怎么做才能在播放过程中反转动画?(并使其在反向播放中再次前进)。 最佳答案 使用反向帧创建另一个相同的重复动画&当你想反转已经运行的动画时,停止你想要反转的那个(即正在运行的)并开始重复的反向(即第二个)动画。 关于android-暂停/反转帧动画?,我们在Stac

Android:缩放不影响传递给 onPreviewFrame() 的预览帧数据

我正在构建一个相机应用程序,它通过实现访问预览帧android.hardware.Camera.PreviewCallback#onPreviewFrame(byte[]data,Cameracamera).当我通过调用更改我的相机缩放时android.hardware.Camera.Parameters#setZoom(intzoom)它似乎对我在onPreviewFrame中获得的数据没有任何影响。预览显示本身按预期效果。这发生在LGNexus4上。如何获得应用于预览数据的实际缩放。我有什么办法知道我的设备是否真的对数据应用了缩放?谢谢, 最佳答案

java - 使用 Android 内置的逐帧动画方法还是自己创建更好?

我下载了几个安卓游戏的例子,大部分都没有使用安卓的动画方法。我还在本网站和其他网站上看到一些帖子,其中有人说他们不喜欢使用Android的动画方法,但他们从未解释原因。那么,一般来说,游戏中最好不要使用Android的动画吗? 最佳答案 我不建议在游戏中使用Android的动画类。原因是它们在不够轻量级的View上运行,无法满足高性能游戏的要求。View专为大多数保持静止的按钮、文本和图像而设计,放置在有组织的布局中,而不是为到处移动的图像而设计的。使用Android制作游戏的两种最佳方法是:使用Canvas类(class)。请注意