gpt4 book ai didi

java - 致命异常 : CameraX-audio encoding thread

转载 作者:行者123 更新时间:2023-12-01 19:02:30 25 4
gpt4 key购买 nike

我正在使用相机 X 库录制视频。当我在此之前拍摄视频 5 秒时(即,如果我关闭视频则两秒),它会因上述错误而崩溃。如何在 androidcameraX 库中处理此运行时异常

E/AndroidRuntime: FATAL EXCEPTION: CameraX-audio encoding thread
Process: .debug, PID: 4625
java.lang.IllegalStateException
at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2698)
at androidx.camera.core.VideoCapture.audioEncode(VideoCapture.java:705)
at androidx.camera.core.VideoCapture$1.run(VideoCapture.java:340)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.os.HandlerThread.run(HandlerThread.java:65)

有时会出现以下问题

FATAL EXCEPTION: CameraX-video encoding thread
Process: <packagename>, PID: 10794
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.media.MediaCodec.dequeueOutputBuffer(android.media.MediaCodec$BufferInfo, long)' on a null object reference
at androidx.camera.core.VideoCapture.videoEncode(VideoCapture.java:604)
at androidx.camera.core.VideoCapture$2.run(VideoCapture.java:348)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)

在此示例中还没有修复 https://github.com/android/camera-samples/issues/2#issuecomment-546812852

最佳答案

通过向 videoCapture.startRecording(videoFile, executor, onVideoSavedCallback); 添加回调,您应该能够处理 onError 方法中的异常。

/**
* Define callback that will be triggered after a video has been taken and saved to disk
*/
private VideoCapture.OnVideoSavedCallback onVideoSavedCallback= new VideoCapture.OnVideoSavedCallback() {
@SuppressLint("RestrictedApi")
@Override
public void onVideoSaved(@NonNull File file) {
Log.d("VIDEO_CAPTURE", "Video capture succeeded");
}

@Override
public void onError(int videoCaptureError, @NonNull String message, @Nullable Throwable cause) {
Log.e("VIDEO_CAPTURE", "Video capture failed");
if (cause != null) {
cause.printStackTrace();
Toast.makeText(context,"Video capture failed",Toast.LENGTH_LONG).show();
}
}
};

关于java - 致命异常 : CameraX-audio encoding thread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59613877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com