2011-08-11 3 views
0

私はHTC Desire(Android 2.3.3、APIレベル9)を持っています。私は320x240のh.263ビデオを記録するプログラムを書こうとしています。設定なしでは、コードはうまく動作し、出力解像度は177x144です。しかし、私はビデオサイズを設定すると常にクラッシュします。そして、私はそれがアンドロイド3.0 +サポートエンコードh.264のみを見つける、私はアンドロイド2.1以上でそれを行う方法を知りたいですか?いずれかの問題の解決に感謝します。ここで私がやっていることですし、ログアンドロイド:エンコードのビデオサイズとエンコード方法を変更できませんh264

recorder = new MediaRecorder(); 
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
recorder.setAudioChannels(1); 
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); 
recorder.setVideoEncodingBitRate(141000); 
recorder.setVideoSize(320,240); 
recorder.setMaxDuration(30000); 

ログ

08-11 21:57:32.048: ERROR/AndroidRuntime(9546): FATAL EXCEPTION: main 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546): java.lang.IllegalStateException 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at android.media.MediaRecorder.start(Native Method) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at com.mobvcasting.camcorder.CamcorderView.startRecording(CamcorderView.java:75) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at com.mobvcasting.camcorder.Camcorder.onKeyDown(Camcorder.java:36) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at android.view.KeyEvent.dispatch(KeyEvent.java:1256) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at android.app.Activity.dispatchKeyEvent(Activity.java:2102) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1666) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2574) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2549) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1881) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at android.os.Handler.dispatchMessage(Handler.java:99) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at android.os.Looper.loop(Looper.java:130) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at android.app.ActivityThread.main(ActivityThread.java:3694) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at java.lang.reflect.Method.invokeNative(Native Method) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at java.lang.reflect.Method.invoke(Method.java:507) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
08-11 21:57:32.048: ERROR/AndroidRuntime(9546):     at dalvik.system.NativeStart.main(Native Method) 

答えて

1

は、あなたが(だけ3.0+で)2.1でこれを行うことはできませんthisリンクによるとあります。それは単にできません。

+0

私はそれがアンドロイドのapiによって実行できないことを知っています。しかし、私はこの使命を終えるために第三者がいるかどうかを知りたいです;-) – lucas

1

私はH264コーデックでビデオを録画し、SDカードに保存するための小さなアプリケーション(APIレベル7)を作成しました。

recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); 

は最終的に私は私のラップトップに記録されたファイルをコピーして、VLCプレーヤーとコーデックを確認していた: は、私の場合は、メディアレコーダーにH264コーデックを設定することが可能でした。 vlcのコーデックの詳細で、私はまだH264コーデックでした。

私はアンドロイド2.2(froyo)でhtcの欲求のためにapplicatoinを実行しました。 私は理由はわかりませんが、私の意見ではAndroid 2.2+がh264エンコーディングをサポートしているように見えます。

関連する問題