Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as Java by who ( 15 years ago )
public class CamcorderPreview extends SurfaceView implements SurfaceHolder.Callback, MediaRecorder.OnErrorListener, MediaRecorder.OnInfoListener {
MediaRecorder recorder;
SurfaceHolder holder;
FileOutputStream fos;
private static final int FRAME_RATE = 15;
private static final int CIF_WIDTH = 320;
private static final int CIF_HEIGHT = 240;
private boolean initialized;
public CamcorderPreview(Context context, AttributeSet attrs) {
super(context, attrs);
holder = getHolder();
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
public void surfaceCreated(SurfaceHolder holder) {
initializeRecording();
}
public void initializeRecording() {
if (!initialized) {
recorder = new MediaRecorder();
recorder.setOnErrorListener(this);
recorder.setOnInfoListener(this);
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/data/ls.3gp";
Log.i("ls", "Video file to use: " + path);
final File file = new File(path);
File directory = file.getParentFile();
if (!directory.exists() && !directory.mkdirs()) {
try {
throw new IOException("Path to file could not be created. " + directory.getAbsolutePath());
} catch (IOException e) {
Log.e("ls", "Directory could not be created. " + e.toString());
}
}
if (file.exists()) {
file.delete();
}
if (recorder != null) {
try {
file.createNewFile();
fos = new FileOutputStream(path);
recorder.setOutputFile(fos.getFD());
recorder.setVideoSize(CIF_WIDTH, CIF_HEIGHT);
recorder.setVideoFrameRate(FRAME_RATE);
recorder.setPreviewDisplay(holder.getSurface());
recorder.prepare();
} catch (IllegalStateException e) {
Log.e("ls", e.toString(), e);
} catch (IOException e) {
Log.e("ls", e.toString(), e);
}
}
initialized = true;
}
}
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
public void surfaceDestroyed(SurfaceHolder holder) {
}
public void onError(MediaRecorder mediaRecorder, int what, int extra) {
Log.e("ls", "Error received in media recorder: " + what + ", " + extra);
}
public void onInfo(MediaRecorder mediaRecorder, int what, int extra) {
Log.e("ls", "Info received from media recorder: " + what + ", " + extra);
}
public void releaseRecorder() throws IOException {
if (recorder != null) {
recorder.reset();
recorder.release();
}
if (fos != null) {
fos.close();
}
initialized = false;
}
public void startRecording() {
recorder.start();
}
public void stopRecording() {
recorder.stop();
}
}
Revise this Paste