我有这个错误。有人可以帮帮我吗,我认为这是关于触摸听众的事情......当我松开手指时发生错误。
04-25 20:07:00.263: D/FB Sessions(18429): false
04-25 20:07:04.533: I/MediaRecorderJNI(18429): prepare: surface=0x189250 (identity=1813)
04-25 20:07:10.493: E/MediaRecorder(18429): stop failed: -1007
04-25 20:07:10.493: D/AndroidRuntime(18429): Shutting down VM
04-25 20:07:10.493: W/dalvikvm(18429): threadid=1: thread exiting with uncaught exception (group=0x40018608)
04-25 20:07:10.503: E/AndroidRuntime(18429): FATAL EXCEPTION: main
04-25 20:07:10.503: E/AndroidRuntime(18429): java.lang.RuntimeException: stop failed.
04-25 20:07:10.503: E/AndroidRuntime(18429): at android.media.MediaRecorder.stop(Native Method)
04-25 20:07:10.503: E/AndroidRuntime(18429): at com.crewbase.rec.RecordActivity.stopRecording(RecordActivity.java:151)
04-25 20:07:10.503: E/AndroidRuntime(18429): at com.crewbase.rec.RecordActivity.access$2(RecordActivity.java:150)
04-25 20:07:10.503: E/AndroidRuntime(18429): at com.crewbase.rec.RecordActivity$1.onTouch(RecordActivity.java:79)
04-25 20:07:10.503: E/AndroidRuntime(18429): at android.view.View.dispatchTouchEvent(View.java:3897)
04-25 20:07:10.503: E/AndroidRuntime(18429): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
04-25 20:07:10.503: E/AndroidRuntime(18429): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
04-25 20:07:10.503: E/AndroidRuntime(18429): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
04-25 20:07:10.503: E/AndroidRuntime(18429): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
04-25 20:07:10.503: E/AndroidRuntime(18429): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1737)
04-25 20:07:10.503: E/AndroidRuntime(18429): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1153)
04-25 20:07:10.503: E/AndroidRuntime(18429): at android.app.Activity.dispatchTouchEvent(Activity.java:2096)
04-25 20:07:10.503: E/AndroidRuntime(18429): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1721)
04-25 20:07:10.503: E/AndroidRuntime(18429): at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2200)
04-25 20:07:10.503: E/AndroidRuntime(18429): at android.view.ViewRoot.handleMessage(ViewRoot.java:1884)
04-25 20:07:10.503: E/AndroidRuntime(18429): at android.os.Handler.dispatchMessage(Handler.java:99)
04-25 20:07:10.503: E/AndroidRuntime(18429): at android.os.Looper.loop(Looper.java:130)
04-25 20:07:10.503: E/AndroidRuntime(18429): at android.app.ActivityThread.main(ActivityThread.java:3835)
04-25 20:07:10.503: E/AndroidRuntime(18429): at java.lang.reflect.Method.invokeNative(Native Method)
04-25 20:07:10.503: E/AndroidRuntime(18429): at java.lang.reflect.Method.invoke(Method.java:507)
04-25 20:07:10.503: E/AndroidRuntime(18429): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
04-25 20:07:10.503: E/AndroidRuntime(18429): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
04-25 20:07:10.503: E/AndroidRuntime(18429): at dalvik.system.NativeStart.main(Native Method)
当我尝试运行此代码时,就会发生这种情况:
来自触摸听众:
/// Preview is SurfaceView in my view
preview.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
prepareRecording();
break;
case MotionEvent.ACTION_MOVE:
//Log.d(TAG, String.format("ACTION_MOVE | x:%s y:%s",
break;
case MotionEvent.ACTION_UP:
stopRecording();
break;
}
return true;
}
});
这两种方法:
private void prepareRecording() {
try {
camera.unlock();
recorder = new MediaRecorder();
recorder.setCamera(camera);
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
File tempFile = new File(Environment.getExternalStorageDirectory(), "/rec/temp/video_" + String.valueOf(videoCount) + ".mp4");
recorder.setOutputFile(tempFile.getPath());
recorder.setVideoFrameRate(25);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
recorder.setPreviewDisplay(holder.getSurface());
recorder.prepare();
recorder.start();
} catch (IllegalStateException e) {
Log.e("REDORDING :: ",e.getMessage());
e.printStackTrace();
} catch (IOException e) {
Log.e("REDORDING :: ",e.getMessage());
e.printStackTrace();
}
}
private void stopRecording() {
recorder.stop();
camera.lock();
}
在我的例子中,我使用Surface作为视频源,但是我忘记设置输入面了。然后我得到了这个-1007错误。
我通过给Input Surface进行了修正,结果很好。
我在用< code>AMR_WB录制音频时出现了类似的错误-1007,但后来发现问题是我忘记设置采样率了。
mediaRecorder.setAudioSamplingRate(16000);
看留档:
请注意,如果在调用 stop()
时未收到有效的音频/视频数据,则会有意将运行时异常
抛出到应用程序。如果在启动 ()
之后立即调用 stop(),
则会发生这种情况。失败使应用程序可以相应地执行操作以清理输出文件(例如,删除输出文件),因为发生这种情况时未正确构造输出文件。
换句话说:Dalvik故意抛出异常。你必须处理它,以便在应用程序完成后进行清理。你必须这样处理:
private void stopRecording() {
try {
recorder.stop();
} catch(RuntimeException stopException) {
// handle cleanup here
}
camera.lock();
}
现象: 运行 php start.php stop 提示 stop fail 原因:几种可能性 第一种可能性: 前提是以debug方式启动的workerman,开发者在终端按了ctrl z给workerman发送了SIGSTOP信号,导致workerman进入后台并挂起(暂停),所以无法响应stop命令(SIGINT信号)。 解决: 在启动workerman的终端输入fg(发送SIGCONT信号)
有一个excelsheet,其中所有URL(16)都列在一列中。现在,一旦页面加载,需要验证页面标题是否与excel中已存储的预期标题匹配。我可以使用for循环执行它。如果全部通过,它将运行所有URL,但如果失败,它将停止运行。我需要完整地运行它,并给出一份通过和失败的报告。我编写了以下代码。 请在这方面帮助我。
我不能成功的屏幕录制,它开始录制ok,但当它停止应用程序崩溃 错误:
我有一个标准的Spring Boot微服务,它使用Log4j2进行所有日志记录。 我想优雅地关闭spring boot应用程序,以防日志记录失败(例如磁盘已满)。有办法设置吗?
当战争部署失败时,我想阻止Tomcat。是否有一些钩子或监听器可以用于此? 我知道,通常情况下,当部署失败时不会让容器停止。在我的例子中,我想使用Tomcat实现一个快速失败的错误模型,因为目前没有机会用带有嵌入式Servlet引擎(例如,Spring-Boot)的胖jar替换WAR。
现象: 运行 php start.php stop 提示 stop fail 原因:两种可能性 第一种可能性: 前提是以debug方式启动的workerman,开发者在终端按了ctrl z给workerman发送了SIGSTOP信号,导致workerman进入后台并挂起(暂停),所以无法响应stop命令(SIGINT信号)。 解决: 在启动workerman的终端输入fg(发送SIGCONT信号)