2011-12-22 19 views
1

首先,請原諒它已經被問過或可以用Google輕鬆找到。我發佈這個,因爲我確實只有有限的時間。這裏是錄製音頻和視頻的代碼。攝像頭輸入:不支持的參數

 stopPreview(); 

     Log.d("streamer", "Start camera....."); 
     videoRecorder = new MediaRecorder(); 
     videoRecorder.setPreviewDisplay(surfaceView.getHolder() 
       .getSurface()); 
     videoRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); 
     videoRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
     videoRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP); 
     videoRecorder.setVideoSize(800, 600); 
     videoRecorder.setVideoFrameRate(30); 
     videoRecorder.setOutputFile(videoPipe.getOutput()); 
     videoRecorder.prepare(); 
     videoRecorder.start(); 
     Log.d("streamer", "Start camera.....action......."); 

     Log.d("streamer", "Start mic....."); 
     audioRecorder = new MediaRecorder(); 
     audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
     audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR); 
     audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
     audioRecorder.setOutputFile(audioPipe.getOutput()); 
     audioRecorder.prepare(); 
     audioRecorder.start(); 
     Log.d("streamer", "Start mic.....action"); 

但是,當我運行它時,上面的代碼在logcat上產生以下代碼。

12-22 09:05:43.456: E/CameraInput(2407): Unsupported parameter(x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value) 
12-22 09:05:43.456: E/CameraInput(2407): VerifiyAndSetParameter failed on parameter #0 

..... 
12-22 09:05:43.456: E/CameraInput(2407): VerifiyAndSetParameter failed on parameter #0 
12-22 09:05:43.464: E/MediaProfiles(2407): mCodec : 2 
12-22 09:05:43.464: E/MediaProfiles(2407): mCodec : 1 
12-22 09:05:43.464: E/MediaProfiles(2407): mCodec : 3 

而且,顯示預覽的表面視圖似乎被凍結。它顯示了最後拍攝的圖像幀。此外,視頻&音頻似乎並沒有錄音。會有什麼問題?很感謝任何形式的幫助!

注:

我與Android 2.2的嘗試這種對三星Galaxy Tab。

談到以下兩行也似乎並不解決

 videoRecorder.setVideoSize(800, 600); 
     videoRecorder.setVideoFrameRate(30); 

以下權限的清單文件中設置的問題。

<uses-permission android:name="android.permission.CAMERA"></uses-permission> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.RECORD_AUDIO"/> 

回答

2

如果看到Supported Media Formats,爲MPEG-4 SP,你需要使用3GP(THREE_GPP)輸出格式。
所以,你可以用

videoRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
+0

我想記錄這個媒體與live555是現場直播的,我需要的MPEG-4試試,我是什麼呢? – Jomoos 2011-12-22 03:52:51

+0

您希望文件格式爲MP4或視頻編解碼器爲MPEG-4 SP?這是兩件獨立的事情。 3GP文件格式與MP4文件格式相同,對某些原子進行了一些更改。所以MP4播放器也應該支持3GP。請檢查。 – Karthik 2011-12-22 03:58:53

+0

如果您仍然希望您的文件格式爲MPEG-4,那麼您必須將您的視頻編解碼器更改爲H.263或H.264 AVC。 BTW,H.263與MPEG-4 SP相同,因此您可以根據需要使用H.263視頻編解碼器和MPEG-4文件格式組合。 – Karthik 2011-12-22 04:00:47