2012-08-12 192 views
0

在Android 2.2的代碼工作罰款2.3在MediaRecorder.start崩潰()雖然。日誌和代碼本身在下面。正如你所看到的,它沒有給出太多的信息,日誌給出了「啓動失敗-2147483648」的消息。我一直在努力嘗試很多年,無法弄清楚這個問題,我做錯了什麼?的Android 2.3 「啓動失敗-2147483648」 mediaRecorder錯誤

mediaRecorder = new MediaRecorder(); 

    try { 
     camera.unlock(); 

     mediaRecorder.setCamera(camera); 

     mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER); 
     mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); 

     mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH)); 
    mediaRecorder.setOutputFile(getOutputMediaFile(MEDIA_TYPE_VIDEO).toString()); 

     mediaRecorder.setPreviewDisplay(cameraPreview.getHolder().getSurface()); 

     mediaRecorder.prepare(); 

     mediaRecorder.start(); // thats the line code fails 

     fightTimer.start(); 
    } 
    catch (RuntimeException ex) { 
     Toast.makeText(this,"Sorry, camera is currently not available"+ex.toString(), 2000).show(); 
    } 
    catch (IOException ex) { 
     Toast.makeText(this,"Sorry, camera is currently not available"+ex.toString(), 2000).show(); 
    } 

和日誌

08-13 06:34:56.914: I/MediaRecorderJNI(2256): prepare: surface=0x2bb230 (identity=13) 
08-13 06:34:57.764: E/MediaRecorder(2256): start failed: -2147483648 
+0

你有相關的權限? – 2012-08-12 23:54:30

+0

是我做的,這一切工作正常,在Android 2.2 – spirytus 2012-08-13 00:21:01

+0

對不起,在這個舊線發佈,但你是怎麼解決這個錯誤我的代碼工作在2.3而是4.0 – 2013-02-26 13:36:25

回答

0

這只是一個糟糕的錯誤代碼。但是,第一行prepare: surface表示與構建VideoPlayer邊界有關的內容,並突然發生異常。

你需要setVideoSize(),也許?

提示:(!沒有錯誤代碼 - 這似乎是這些錯誤代碼都一樣的錯誤信息本身是隨機的)我搜索「的Android mediarecorder啓動失敗」

編輯: 既然它可以在Android 2.2上運行,您是否看過MediaRecorder的API 2.2和API 2.3之間的API更改?

+0

崩潰,我有視頻大小等通過CamcorderProfile設定高品質,其實我想手動設置這些值,結果是一樣的:( – spirytus 2012-08-13 00:34:15

+0

好吧。請參考提示:) – 2012-08-13 00:34:45

+0

另請參閱編輯 – 2012-08-13 00:37:17