Vorderkamera Video aufnehmen

  • Antworten:0
Schorn Stein
  • Forum-Beiträge: 20

21.01.2013, 19:56:24 via Website

Hallo Leute
ich beschäftige mich grad mit der Handy-Kamera und habe hierbei ein Problem wo ich nicht weiterkomme.
Und zwar habe ich einen Code mithilfe ich ein Video mit der Hauptkamera aufnehmen und speichern kann.
Nun möchte ich, dass die Vorderkamera benutzt wird ( also diese "front facing camera")

Hier ist erstmal der derzeitige Code:

1package de.androidnewcomer.funnysounds;
2
3import java.io.IOException;
4
5import android.app.Activity;
6import android.hardware.Camera.CameraInfo;
7import android.hardware.Camera.Parameters;
8import android.media.CamcorderProfile;
9import android.media.MediaRecorder;
10import android.os.Bundle;
11import android.view.SurfaceHolder;
12import android.view.SurfaceView;
13import android.view.View;
14import android.view.View.OnClickListener;
15import android.widget.Button;
16
17public class AndroidVideoCapture extends Activity implements
18 SurfaceHolder.Callback, OnClickListener {
19
20 Button play, stop;
21 MediaRecorder mediaRecorder;
22 SurfaceHolder surfaceHolder;
23 boolean recording;
24
25 /** Called when the activity is first created. */
26 @Override
27 public void onCreate(Bundle savedInstanceState) {
28 super.onCreate(savedInstanceState);
29
30 recording = false;
31
32 mediaRecorder = new MediaRecorder();
33 initMediaRecorder();
34
35 setContentView(R.layout.activity_main);
36
37 SurfaceView myVideoView = (SurfaceView) findViewById(R.id.videoview);
38 surfaceHolder = myVideoView.getHolder();
39 surfaceHolder.addCallback(this);
40 surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
41
42 play = (Button) findViewById(R.id.button1);
43 play.setOnClickListener(this);
44
45 stop = (Button) findViewById(R.id.button2);
46 stop.setOnClickListener(this);
47 }
48
49
50
51 public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
52 // TODO Auto-generated method stub
53
54 }
55
56 public void surfaceCreated(SurfaceHolder arg0) {
57 // TODO Auto-generated method stub
58 prepareMediaRecorder();
59 }
60
61 public void surfaceDestroyed(SurfaceHolder arg0) {
62 // TODO Auto-generated method stub
63
64 }
65
66 private void initMediaRecorder() {
67 mediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
68 mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
69
70 CamcorderProfile camcorderProfile_HQ = CamcorderProfile
71 .get(CamcorderProfile.QUALITY_HIGH);
72
73 mediaRecorder.setProfile(camcorderProfile_HQ);
74 mediaRecorder.setOutputFile("/sdcard/myvideo.mp4");
75 mediaRecorder.setMaxDuration(60000); // Set max duration 60 sec.
76 mediaRecorder.setMaxFileSize(100000000); // Set max file size 5M
77 }
78
79 private void prepareMediaRecorder() {
80 mediaRecorder.setPreviewDisplay(surfaceHolder.getSurface());
81 try {
82 mediaRecorder.prepare();
83 } catch (IllegalStateException e) {
84 // TODO Auto-generated catch block
85 e.printStackTrace();
86 } catch (IOException e) {
87 // TODO Auto-generated catch block
88 e.printStackTrace();
89 }
90 }
91
92 public void onClick(View v) {
93 switch(v.getId()){
94 case R.id.button1:
95 mediaRecorder.start();
96 recording = true;
97 break;
98
99 case R.id.button2:
100 if (recording) {
101 mediaRecorder.stop();
102 mediaRecorder.release();
103 finish();
104 }
105 break;
106 }
107
108 }
109}

Was muss ich ändern bzw. hinzufügen, dass die Vorderkamera benutzt wird?
Über eure Hilfe würde ich mich freuen.

LG

Antworten