8

Androidアプリでメディアレコーダーを使用してビデオを録画しています。

mMediaRecorder.setCamera(mServiceCamera);
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);

//mMediaRecorder.setVideoSize(mPreviewSize.width, mPreviewSize.height);

mMediaRecorder.setVideoFrameRate(30);
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);  
String file_name = Environment.getExternalStorageDirectory().getPath() +"/myVideo.mp4";   
mMediaRecorder.setOutputFile(file_name);    
mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
mMediaRecorder.prepare();
mMediaRecorder.start();

問題はラインにあります

 mMediaRecorder.setVideoSize(mPreviewSize.width, mPreviewSize.height);

HTC と Xperia では、setVideoSize は正常に機能します (この行をコメントしない場合にのみ機能します)。しかし、Nexus と Note では、setVideoSize は機能しません (この行をコメントした場合にのみ機能します)。

これらすべてのデバイスでアプリを正しく実行するにはどうすればよいですか??

4

2 に答える 2

0

デバイスのビデオ サイズは、プレビュー サイズと同じです。まず、設定したビデオ サイズが使用可能かどうかを確認する必要があります。異なるデバイスのビデオ サイズは異なる場合があります。そのため、最初にgetSupportedPreviewSizes ()を使用して使用可能なプレビュー サイズを確認し、次にビデオ サイズを設定します。これはリストを返します。そのうちの 1 つだけを選択する必要があります。

于 2013-06-27T08:39:04.317 に答える