我正在尝试创建一个后台视频录制android 应用程序,其中视频在后台录制(当应用程序不在前台时)以及屏幕关闭时。我在 PlayStore 中发现了一些可以执行此功能的应用程序,因此我相信这是可行的。
我尝试使用服务和活动来实现这一点。该活动有两个按钮和一个 SurfaceView。当我单击开始录制按钮时,服务开始使用 MediaRecorder 录制视频,应用程序进入后台。当我从后台再次打开应用程序以停止视频录制并单击停止录制按钮时,应用程序崩溃并显示以下日志。我在这里搜索过,我找到了与此相关的不同代码,但我找不到任何可以帮助我解决这个问题的解决方案。
08-13 22:04:50.085 24729-24729/com.meowme.camerarecorder E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.meowme.camerarecorder, PID: 24729
java.lang.RuntimeException: Unable to stop service com.meowme.camerarecorder.RecorderService@38a64c2: java.lang.IllegalStateException
at android.app.ActivityThread.handleStopService(ActivityThread.java:3727)
at android.app.ActivityThread.-wrap27(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1806)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6940)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: java.lang.IllegalStateException
at android.media.MediaRecorder._stop(Native Method)
at android.media.MediaRecorder.stop(MediaRecorder.java:1306)
at com.meowme.camerarecorder.RecorderService.stopRecording(RecorderService.java:164)
at com.meowme.camerarecorder.RecorderService.onDestroy(RecorderService.java:92)
at android.app.ActivityThread.handleStopService(ActivityThread.java:3709)
at android.app.ActivityThread.-wrap27(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1806)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6940)
at java.lang.reflect.Method.invoke(Native …Run Code Online (Sandbox Code Playgroud)