2

我想编写一个服务,它在服务启动时在后台记录,并在服务停止时停止记录。

我在这里找到了一些关于它的板,但没有一个有效。

谁能帮我?感谢所有的帮助!

谢谢!!

4

1 回答 1

6

我从来没有像这样对视频做过这个,只是拍照,但我认为它会非常相似。希望它会帮助你。

首先要做的事情 - Android 不会让你在没有预览表面的情况下拍照/录制视频。这使得从服务中执行此操作更加困难,因为您需要自己从头开始创建此预览。您可能会发现一些像这样的旧帖子,其中输入了一个虚拟预览。这似乎不再适用于新的 API。

但是,有一种方法可以创建这样的预览,使其透明或将其调整为 1x1 像素等愚蠢的东西。可以在这篇文章中找到有关如何执行此操作的信息。

我会问自己是否真的需要从服务而不是活动中获取此视频。如果是,请使用窗口管理器创建预览表面(它适用于为我从服务中拍照):

WindowManager winMan = (WindowManager) mCtx.getSystemService(Context.WINDOW_SERVICE);
params = new WindowManager.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT,            WindowManager.LayoutParams.WRAP_CONTENT,
        WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
        WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
        PixelFormat.TRANSLUCENT);        
winMan.addView(surfaceview, params);

surfaceview.setZOrderOnTop(true);
mHolder.setFormat(PixelFormat.TRANSPARENT);

祝你好运。

于 2013-07-11T20:08:14.150 回答