test On 6月23日, 上午12时48分, cindy <[email protected]> wrote: > I have tried 1.5 video API. I could not make it work.It even can't do > preview. > > following is my code: > private boolean initializeVideo() { > Log.v(TAG, "initializeVideo"); > > if(Common.mRecordedVideo!=null && Common.mRecordedVideo.exists > ()) > Common.mRecordedVideo.delete(); > File sDir = Environment.getExternalStorageDirectory(); > String baseDir = sDir + Common.BASE_DIR; > File sampleDir=new File(baseDir); > if(!sampleDir.canWrite()) // Workaround for broken sdcard > support on the device. > sampleDir = new File("/sdcard/sdcard"); > > try > { > Common.mRecordedVideo = File.createTempFile(PREFIX, > EXTENSION, sampleDir); > } > catch(IOException e) > { > AlertDialog.Builder ab = new AlertDialog.Builder > (VideoRecord.this); > ab.setTitle("Error"); > ab.setMessage(" can't write audio data to storage"); > ab.setIcon(R.drawable.error); > ab.setNeutralButton("Close", new > DialogInterface.OnClickListener() > { > public void onClick(DialogInterface dialog, int > whichButton) > { > } > }); > ab.show(); > return false; > } > > Intent intent = getIntent(); > releaseMediaRecorder(); > > if (mSurfaceHolder == null) { > Log.v(TAG, "SurfaceHolder is null"); > return false; > } > > mMediaRecorder = new MediaRecorder(); > > mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); > > mMediaRecorder.setVideoSource > (MediaRecorder.VideoSource.CAMERA); > mMediaRecorder.setOutputFormat > (MediaRecorder.OutputFormat.THREE_GPP); > > mMediaRecorder.setMaxDuration(MAX_RECORDING_DURATION_MS); > mMediaRecorder.setOutputFile > (Common.mRecordedVideo.getAbsolutePath()); > > // Use the same frame rate for both, since internally > // if the frame rate is too large, it can cause camera to > become > // unstable. We need to fix the MediaRecorder to disable the > support > // of setting frame rate for now. > mMediaRecorder.setVideoFrameRate(20); > mMediaRecorder.setVideoSize(352,288); > > mMediaRecorder.setVideoEncoder > (MediaRecorder.VideoEncoder.H263); > > mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface()); > > try { > mMediaRecorder.prepare(); > } catch (IOException exception) { > Log.e(TAG, "prepare failed for " ); > releaseMediaRecorder(); > // TODO: add more exception handling logic here > return false; > } > mMediaRecorderRecording = false; > > return true; > } > > private void startVideoRecording() { > Log.v(TAG, "startVideoRecording"); > if (!mMediaRecorderRecording) > { > // Check mMediaRecorder to see whether it is > initialized or > not. > if (mMediaRecorder == null && initializeVideo() == > false ) > { > Log.e(TAG, "Initialize video (MediaRecorder) > failed."); > return; > } > try > { > mMediaRecorder.setOnErrorListener(this); > mMediaRecorder.setOnInfoListener(this); > mMediaRecorder.start(); // Recording is now started > } catch (RuntimeException e) { > Log.e(TAG, "Could not start media recorder. ", e); > return; > } > mMediaRecorderRecording = true; > mRecordingStartTime = SystemClock.uptimeMillis(); > updateRecordingIndicator(true); > mRecordingTimeView.setText(""); > mRecordingTimeView.setVisibility(View.VISIBLE); > mHandler.sendEmptyMessage(UPDATE_RECORD_TIME); > setScreenTimeoutInfinite(); > } > }
--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

