我正在看课MediaRecorderAndroidSDK,我想知道它是否可以用来录制由Surface制作的视频。示例:我想将我在表面上显示的内容(视频游戏?)记录到一个文件中。正如我在标题中所说:我不想用相机记录任何东西。我认为重写大部分类(class)是可能的,但我非常想要一些想法......此外,我不确定Camera类在MediaRecorder中的使用方式,以及我应该从我的Surface中获取什么来替换它。感谢您的关注!PS:我正在查看使用我的MediaRecorder的native代码以获取一些线索,也许它会启发其他人:http://www.netmite.com/androi
我尝试用EGL初始化GLES(因为我想从主线程中绘制而不是使用渲染器并从onDrawFrame内部绘图)。我收到错误消息:“确保SurfaceView或关联的SurfaceHolder具有有效的Surface”。显然mEgl.eglCreateWindowSurface失败了,因为surfaceHolder没有有效的表面。如何获得具有有效Surface的SurfaceHolder才能继续?我的Activity.onCreate方法是:protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceS
我想以编程方式获取我的游戏的屏幕截图,就像您在EclipseDDMS中获取的一样。通过此处提出的解决方案截取的屏幕截图:HowtoprogrammaticallytakeascreenshotinAndroid?在大多数其他SO问题中,只有View元素可见,而SurfaceView不可见。SCREENSHOTS_LOCATIONS=Environment.getExternalStorageDirectory().toString()+"/screenshots/";//GetrootviewViewview=activity.getWindow().getDecorView().ge
我在android上开发,我想用相机做一些事情(处理像素值),但只是在后台,是否可以在没有表面View的情况下进行?只需使用缓冲区读取像素值并进行处理。感谢每一位能帮助我的人 最佳答案 从API级别11开始,SurfaceTexture加入。有了它,不再需要SurfaceView。我用我的SamsungGalaxyS3Neo测试了以下代码。mCamera=Camera.open();try{mCamera.setPreviewTexture(newSurfaceTexture(10));}catch(IOExceptione1){L
我想在SurfaceView上使用相机制作背景,并且我在低于23的androidAPI上取得了成功。虽然我之前在API23上的应用程序中请求相机许可,但我的Nexus5和Android6上仍然出现以下错误:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“voidandroid.hardware.Camera.setPreviewDisplay(android.view.SurfaceHolder)”在com.package.name.CameraPreview.surfaceCreated(CameraPreview.java:31)我的代
我正在尝试使用onPreviewFrame()回调显示经过过滤的相机预览。问题是当我删除这一行时:mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);为了隐藏预览,应用程序崩溃了。日志内容如下:08-1915:57:51.042:错误/CameraService(59):registerBuffers失败,状态为-38这是什么意思?这在任何地方都有记录吗?我正在使用来自SDKAPIDemos的CameraPreview:http://developer.android.com/resources/samples/ApiDem
我的Android应用程序包含多个Activity,每个Activity负责一个fragment(目前)。我的fragment通常是这样显示/附加的:mTopicFragment=(TopicFragment)getSupportFragmentManager().findFragmentByTag("topic");if(mTopicFragment==null)mTopicFragment=TopicFragment.newInstance(bid,page,pid);if(savedInstanceState==null){getSupportFragmentManager().
我有一个管理自己的GLSurfaceView的应用程序,现在我想使用Android4.3的新MediaCodec功能,该功能将Surface作为输入。在我见过的所有示例中,Surface都是使用MediaCodec.createInputSurface()创建的,然后为该Surface创建GL上下文。翻新到一个已经稳定的代码库中,这感觉是整体式的,并且具有令人难以置信的破坏性。是否可以使用MediaCodec.configure(格式,a_predefined_Surface,无效的,MediaCodec.CONFIGURE_FLAG_ENCODE)反而?这使我能够以即插即用和按需方式
因此,在我的应用程序中,我能够使用GPUImage对来自相机的视频显示效果(如模糊滤镜、高斯)。图书馆。基本上,我(库)将从相机获取输入,获取原始字节数据,将其从YUV格式转换为RGBA格式,然后将效果应用于此图像并显示在Surface上GLSurfaceView使用OpenGL。最后,对于用户来说,它看起来像是应用了效果的视频。现在我想使用MediaCodec将Surface的帧记录为视频API。但是这个discussion表示我们无法将预定义的Surface传递给MediaCodec。我在bigflake看到了一些样本他使用MediaCodec.createInputSurface
在我的Activity中,我想创建一个独立的表面(不链接到现有Activity窗口)并在其中显示一些内容。我的意思是这个窗口应该出现在我现有的Activity窗口之上)。当我尝试这样做时,我在logcat中收到此消息:D/mali_winsys(119):new_window_surfacereturns0x3000而我的窗口是看不见的。有人可以告诉我这条消息是否指向某个错误吗?我正在4.4.2(Nexus10平板电脑)上试用 最佳答案 这不是错误。我刚刚花了最后一个小时试图找出消息的含义,并在egl.h中发现0x3000是EGL_