In recent years, video has become commonplace on handsets. Most handsets on the market
now can record and play back video, and this is no different with Android, although
the specific video features might vary from handset to handset.
Recording Video
Android applications can record video using the MediaRecorder class. Using
MediaRecorder is a matter of following a few simple steps:
1. Instantiate a new MediaRecorder object.
2. Set the video source.
3. Set the video output format.
4. Set the video size to record (optional).
5. Set the video frame rate (optional).
6. Set the video encoder.
7. Set the file to record to. (The extension must match output format.)
8. Set the preview surface.
9. Prepare the object for recording.
10. Start the recording.
11. Stop and release the recording object when finished.
Using some standard button controls, you can create an Activity to record and play back
video using the preceding steps.The onClick() method for a record button might look
like this:
public void onClick(View v) {
if (videoRecorder == null) {
videoRecorder = new MediaRecorder();
}
String pathForAppFiles =
getFilesDir().getAbsolutePath();
pathForAppFiles += RECORDED_FILE;
videoRecorder.setVideoSource(
MediaRecorder.VideoSource.CAMERA);
videoRecorder.setOutputFormat(
MediaRecorder.OutputFormat.MPEG4 );
videoRecorder.setVideoSize(640, 480);
videoRecorder.setVideoFrameRate(30);
videoRecorder.setVideoEncoder(
MediaRecorder.VideoEncoder.H264);
videoRecorder.setOutputFile(pathForAppFiles);
videoRecorder.setPreviewDisplay(surface);
videoRecorder.prepare();
videoRecorder.start();
// button handling and other behavior here
}
The videoRecorder object is instantiated and given some video configuration values for
the recording source.There are several values for each video configuration setting; however,
supported values can vary by device.
A stop button configured with an onClick() handler might look like this:
public void onClick(View v) {
if (videoRecorder!= null) {
videoRecorder.stop();
videoRecorder.release();
videoRecorder = null;
}
// button handling and other behavior here
}
Finally, applications wanting to record video require the explicit permission
android.permission.CAMERA set within the AndroidManifest.xml file.
Now it is time to add the playback functionality, so we can watch the video we just
recorded.
Playing Video
The simplest way to play back video with the Android SDK is to use the VideoView
widget along with the MediaController widget to provide basic video controls.The following
is an implementation of an onCreate() method within an Activity that demonstrates
a workable video playback solution:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.moving);
VideoView vv = (VideoView) findViewById(R.id.video);
MediaController mc = new MediaController(this);
Uri video = Uri.parse(MOVIE_URL);
vv.setMediaController(mc);
vv.setVideoURI(video);
}
The call to the setVideoURI() method automatically starts playback.You can create a
listener for when playback finishes using the setOnCompletionListener() method of the
ViewView.The VideoView object has several other helpful methods, such as
getDuration() and direct control over playback through methods such as pause(). For
finer control over the media, or for an alternate way to play back media, you can use the
MediaPlayer object. Use of it is similar to using the Camera?you need a
SurfaceHolder.
0 件のコメント:
コメントを投稿