gpt4 book ai didi

java - Android媒体录制错误启动失败-19 runTimeException

转载 作者:行者123 更新时间:2023-12-02 12:24:27 27 4
gpt4 key购买 nike

我的媒体录制遇到问题。我正在尝试使用前置摄像头进行录制。这给了我一个错误(但预览正常)。每当我使用后置摄像头时,一切都正常,我认为这很奇怪。问题可能是什么以及解决方案是什么?我的代码和错误如下所示。

编辑。使用 VGA 前置摄像头录制似乎不起作用。这怎么可能?尽管可以使用 HTC 相机应用程序进行录制。

提前感谢您。

protected void startRecording() throws Exception 
{
mrec = new MediaRecorder();
mCamera.unlock();

mrec.setCamera(mCamera);


mrec.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mrec.setAudioSource(MediaRecorder.AudioSource.MIC);

mrec.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
//mrec.setPreviewDisplay(surfaceHolder.getSurface());

File picDirectory = new File(Environment.getExternalStorageDirectory() +"/TrouwApp");
picDirectory.mkdirs();

File mediaStorageDir = new File(Environment.getExternalStorageDirectory() +"/TrouwApp", "Videos");

// Create the storage directory if it does not exist
if (! mediaStorageDir.exists()){
if (! mediaStorageDir.mkdirs()){
Log.d("MyCameraApp", "failed to create directory");
}
}

mrec.setOutputFile( mediaStorageDir.getPath() + File.separator + date + "_" + videonr+ ".3gp");

mrec.prepare();
mrec.start();//line 136

Log.d(TAG, "Recording started!!");
}

添加到 list 的行:

<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

错误日志:

 08-25 23:25:25.332: V/MediaRecorderJNI(4989): setup08-25 23:25:25.362: V/MediaRecorder(4989): constructor08-25 23:25:25.402: V/MediaRecorder(4989): doCleanUp08-25 23:25:25.402: V/MediaRecorder(4989): setListener08-25 23:25:25.402: V/MediaRecorderJNI(4989): setMediaRecorder E: mr = mr08-25 23:25:25.402: V/MediaRecorderJNI(4989): setMediaRecorder X08-25 23:25:25.402: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:25.402: V/MediaRecorderJNI(4989): JNIMediaRecorderListener::setCamera08-25 23:25:25.402: V/MediaRecorder(4989): setCamera(0x16c2290,0x1c08dc8)08-25 23:25:25.402: V/MediaRecorderJNI(4989): process_media_recorder_call08-25 23:25:25.402: V/MediaRecorderJNI(4989): setVideoSource(1)08-25 23:25:25.402: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:25.402: V/MediaRecorder(4989): setVideoSource(1)08-25 23:25:25.402: V/MediaRecorder(4989): Call init() since the media recorder is not initialized yet08-25 23:25:25.402: V/MediaRecorder(4989): init08-25 23:25:25.412: V/MediaRecorderJNI(4989): process_media_recorder_call08-25 23:25:25.412: V/MediaRecorderJNI(4989): setAudioSource(1)08-25 23:25:25.412: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:25.412: V/MediaRecorder(4989): setAudioSource(1)08-25 23:25:25.412: V/MediaRecorderJNI(4989): process_media_recorder_call08-25 23:25:25.502: V/MediaRecorderJNI(4989): setOutputFormat(2)08-25 23:25:25.502: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:25.502: V/MediaRecorder(4989): setOutputFormat(2)08-25 23:25:25.502: V/MediaRecorderJNI(4989): process_media_recorder_call08-25 23:25:25.502: V/MediaRecorderJNI(4989): setVideoFrameRate(30)08-25 23:25:25.502: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:25.502: V/MediaRecorder(4989): setVideoFrameRate(30)08-25 23:25:25.502: V/MediaRecorderJNI(4989): process_media_recorder_call08-25 23:25:25.502: V/MediaRecorderJNI(4989): setVideoSize(1920, 1088)08-25 23:25:25.502: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:25.502: V/MediaRecorder(4989): setVideoSize(1920, 1088)08-25 23:25:25.502: V/MediaRecorderJNI(4989): process_media_recorder_call08-25 23:25:25.502: V/MediaRecorderJNI(4989): setParameter()08-25 23:25:25.502: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:25.502: V/MediaRecorder(4989): setParameters(video-param-encoding-bitrate=12000000)08-25 23:25:25.512: V/MediaRecorderJNI(4989): process_media_recorder_call08-25 23:25:25.512: V/MediaRecorderJNI(4989): setVideoEncoder(2)08-25 23:25:25.512: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:25.512: V/MediaRecorder(4989): setVideoEncoder(2)08-25 23:25:25.512: V/MediaRecorderJNI(4989): process_media_recorder_call08-25 23:25:25.512: V/MediaRecorderJNI(4989): setParameter()08-25 23:25:25.512: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:25.512: V/MediaRecorder(4989): setParameters(audio-param-encoding-bitrate=96000)08-25 23:25:25.512: V/MediaRecorderJNI(4989): process_media_recorder_call08-25 23:25:25.512: V/MediaRecorderJNI(4989): setParameter()08-25 23:25:25.512: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:25.512: V/MediaRecorder(4989): setParameters(audio-param-number-of-channels=1)08-25 23:25:25.512: V/MediaRecorderJNI(4989): process_media_recorder_call08-25 23:25:25.512: V/MediaRecorderJNI(4989): setParameter()08-25 23:25:25.512: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:25.512: V/MediaRecorder(4989): setParameters(audio-param-sampling-rate=48000)08-25 23:25:25.512: V/MediaRecorderJNI(4989): process_media_recorder_call08-25 23:25:25.512: V/MediaRecorderJNI(4989): setAudioEncoder(3)08-25 23:25:25.512: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:25.512: V/MediaRecorder(4989): setAudioEncoder(3)08-25 23:25:25.512: V/MediaRecorderJNI(4989): process_media_recorder_call08-25 23:25:25.542: V/MediaRecorderJNI(4989): setOutputFile08-25 23:25:25.542: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:25.542: V/MediaRecorder(4989): setOutputFile(60, 0, 0)08-25 23:25:25.542: V/MediaRecorderJNI(4989): process_media_recorder_call08-25 23:25:25.542: V/MediaRecorderJNI(4989): prepare08-25 23:25:25.542: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:25.542: V/MediaRecorder(4989): prepare08-25 23:25:25.542: V/MediaRecorderJNI(4989): process_media_recorder_call08-25 23:25:25.542: V/MediaRecorderJNI(4989): start08-25 23:25:25.552: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:25.552: V/MediaRecorder(4989): start08-25 23:25:25.562: E/MediaRecorder(4989): start failed: -1908-25 23:25:25.562: V/MediaRecorderJNI(4989): process_media_recorder_call08-25 23:25:25.562: E/MediaRecorder(4989): start failed.08-25 23:25:25.562: E/MediaRecorder(4989): try to delete broken file: /mnt/sdcard/TrouwApp/Videos/25-8-2013_0.3gp08-25 23:25:25.562: D/videoActivity(4989): ERROR start failed.08-25 23:25:25.562: D/videoActivity(4989): ERROR java.lang.RuntimeException: start failed.08-25 23:25:25.562: D/videoActivity(4989): ERROR java.lang.RuntimeException: start failed.08-25 23:25:25.562: V/MediaRecorderJNI(4989): release08-25 23:25:25.562: V/MediaRecorderJNI(4989): setMediaRecorder E: mr = null08-25 23:25:25.562: V/MediaRecorderJNI(4989): setMediaRecorder X08-25 23:25:25.562: V/MediaRecorder(4989): setListener08-25 23:25:25.562: V/MediaRecorder(4989): release08-25 23:25:25.562: V/MediaRecorder(4989): destructor08-25 23:25:25.562: D/videoActivity(4989): START RECORDING ERROR08-25 23:25:25.562: W/System.err(4989): java.lang.RuntimeException: start failed.08-25 23:25:25.572: W/System.err(4989):     at android.media.MediaRecorder._start(Native Method)08-25 23:25:25.572: W/System.err(4989):     at android.media.MediaRecorder.start(MediaRecorder.java:712)08-25 23:25:25.572: W/System.err(4989):     at com.example.trouwapp.VideoActivity.startRecording(VideoActivity.java:136)08-25 23:25:25.572: W/System.err(4989):     at com.example.trouwapp.VideoActivity.onClick(VideoActivity.java:246)08-25 23:25:25.572: W/System.err(4989):     at android.view.View.performClick(View.java:3549)08-25 23:25:25.572: W/System.err(4989):     at android.view.View$PerformClick.run(View.java:14393)08-25 23:25:25.582: W/System.err(4989):     at android.os.Handler.handleCallback(Handler.java:605)08-25 23:25:25.582: W/System.err(4989):     at android.os.Handler.dispatchMessage(Handler.java:92)08-25 23:25:25.582: W/System.err(4989):     at android.os.Looper.loop(Looper.java:154)08-25 23:25:25.582: W/System.err(4989):     at android.app.ActivityThread.main(ActivityThread.java:4945)08-25 23:25:25.582: W/System.err(4989):     at java.lang.reflect.Method.invokeNative(Native Method)08-25 23:25:25.582: W/System.err(4989):     at java.lang.reflect.Method.invoke(Method.java:511)08-25 23:25:25.582: W/System.err(4989):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)08-25 23:25:25.582: W/System.err(4989):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)08-25 23:25:25.592: W/System.err(4989):     at dalvik.system.NativeStart.main(Native Method)08-25 23:25:55.582: V/MediaRecorderJNI(4989): native_reset08-25 23:25:55.582: V/MediaRecorderJNI(4989): getMediaRecorder E08-25 23:25:55.582: V/MediaRecorderJNI(4989): release08-25 23:25:55.582: V/MediaRecorderJNI(4989): setMediaRecorder E: mr = null08-25 23:25:55.582: V/MediaRecorderJNI(4989): setMediaRecorder X08-25 23:25:56.002: D/AndroidRuntime(4989): Shutting down VM08-25 23:25:56.002: W/dalvikvm(4989): threadid=1: thread exiting with uncaught exception (group=0x40ac8228)

最佳答案

找到了解决方案。由于我使用的是前置摄像头,因此我需要从前置摄像头获取摄像机配置文件。我通过这样做实现了这一点:

mrec.setProfile(CamcorderProfile.get(1, CamcorderProfile.QUALITY_HIGH));

而不是这个:

mrec.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));

关于java - Android媒体录制错误启动失败-19 runTimeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18434178/

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