[英]FFMPEG Video Recorder Issue
我正在使用FFmpegVideoRecorder-Android的可自定義視頻錄制庫
在我的視頻錄制應用中 我按照GitHub上的說明安裝了該庫。 當我運行該應用程序時,出現以下錯誤。
Error opening camera
java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object[] java.util.Collection.toArray()' on a null object reference
at com.google.common.collect.ImmutableSet.copyOf(ImmutableSet.java:247)
at com.amosyuen.videorecorder.camera.CameraController.setFlashModeParams(CameraController.java:383)
at com.amosyuen.videorecorder.camera.CameraController.openCamera(CameraController.java:175)
at com.amosyuen.videorecorder.activity.FFmpegRecorderActivity$OpenCameraTask.doInBackground(FFmpegRecorderActivity.java:718)
at com.amosyuen.videorecorder.activity.FFmpegRecorderActivity$OpenCameraTask.doInBackground(FFmpegRecorderActivity.java:706)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
我使用的代碼是這個
recordbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String date = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String videoSTVString = "/sdcard/myapp_"+ date +".mp4";
prefs.edit().putString("videoSTVString", videoSTVString).commit();
String thumbnailString = "/sdcard/myapp_thumbnail_"+ date +".jpg";
File stvVideoFile = new File(videoSTVString);
File stvThumbnailFile = new File(thumbnailString);
startActivity(stvVideoFile, stvThumbnailFile);
}
});
public void startActivity(File videoFile, File thumbnailFile) {
FFmpegRecorderActivityParams.Builder paramsBuilder =
FFmpegRecorderActivityParams.builder(getApplicationContext())
.setVideoOutputFileUri(videoFile)
.setVideoThumbnailOutputFileUri(thumbnailFile);
paramsBuilder.recorderParamsBuilder()
.setVideoSize(new ImageSize(640, 480))
.setVideoCodec(EncoderParamsI.VideoCodec.H264)
.setVideoBitrate(100000)
.setVideoFrameRate(30)
.setVideoImageFit(ImageFit.FILL)
.setVideoImageScale(ImageScale.DOWNSCALE)
.setShouldCropVideo(true)
.setShouldPadVideo(true)
.setVideoCameraFacing(CameraControllerI.Facing.BACK)
.setAudioCodec(EncoderParamsI.AudioCodec.AAC)
.setAudioSamplingRateHz(44100)
.setAudioBitrate(100000)
.setAudioChannelCount(2)
.setOutputFormat(EncoderParamsI.OutputFormat.MP4);
Intent intent = new Intent(this, FFmpegRecorderActivity.class);
intent.putExtra(FFmpegRecorderActivity.REQUEST_PARAMS_KEY, paramsBuilder.build());
startActivityForResult(intent, 1000);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1000) {
switch (resultCode) {
case RESULT_OK:
Uri videoUri = data.getData();
break;
case Activity.RESULT_CANCELED:
break;
case FFmpegRecorderActivity.RESULT_ERROR:
break;
}
}
}
誰能幫我解決這個錯誤?
您正在使用的庫https://github.com/amosyuen/FFmpegVideoRecorder最近處理了此錯誤,當從Camera獲取getSupportedFlashModes時遇到此錯誤。 您可以在這里查看最近的版本-
https://github.com/amosyuen/FFmpegVideoRecorder/commit/5844bd9b944cd6efa1e93278d35b95d1092c6016
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.