1
1
package com .example .helloandroid ;
2
2
3
3
import android .annotation .SuppressLint ;
4
+ import android .annotation .TargetApi ;
4
5
import android .app .ActionBar ;
5
6
import android .app .Activity ;
6
7
import android .content .Intent ;
@@ -66,21 +67,42 @@ public void sendMessage(View view) {
66
67
startActivity (intent );
67
68
}
68
69
69
- @ SuppressLint ("NewApi" )
70
+ @ TargetApi (14 )
71
+ @ Override
72
+ protected void onResume () {
73
+ super .onResume ();
74
+
75
+ camera = Camera .open ();
76
+ cameraPreview = new CameraPreview (this , camera );
77
+ FrameLayout previewFrameLayout = (FrameLayout ) findViewById (R .id .camera_preview );
78
+ previewFrameLayout .addView (cameraPreview );
79
+ camera .getParameters ().setRecordingHint (true );
80
+ }
81
+
82
+ @ Override
83
+ protected void onPause () {
84
+ super .onPause ();
85
+
86
+ try {
87
+ if (camera != null ) {
88
+ camera .stopPreview ();
89
+ camera .setPreviewDisplay (null );
90
+ camera .release ();
91
+ camera = null ;
92
+ }
93
+ } catch (Exception e ) {
94
+ Log .e (TAG , e .getMessage ());
95
+ e .printStackTrace ();
96
+ }
97
+ }
98
+
70
99
public void startRecording (View view ) {
71
100
try {
72
101
if (!Utils .isIntentAvailable (this , MediaStore .ACTION_VIDEO_CAPTURE )) {
73
102
Toast .makeText (this , "No camera available" , Toast .LENGTH_SHORT ).show ();
74
103
return ;
75
104
}
76
105
77
- camera = Camera .open ();
78
- cameraPreview = new CameraPreview (this , camera );
79
- FrameLayout previewFrameLayout = (FrameLayout ) findViewById (R .id .camera_preview );
80
- previewFrameLayout .addView (cameraPreview );
81
-
82
- camera .getParameters ().setRecordingHint (true );
83
-
84
106
camera .unlock ();
85
107
recorder = new MediaRecorder ();
86
108
recorder .setCamera (camera );
@@ -112,6 +134,7 @@ public void stopRecording(View view) {
112
134
if (recorder != null ) {
113
135
recorder .stop ();
114
136
releaseMediaRecorder ();
137
+ camera .lock ();
115
138
}
116
139
117
140
Log .i (TAG , "Recording stopped" );
@@ -123,11 +146,5 @@ private void releaseMediaRecorder() {
123
146
recorder .release ();
124
147
recorder = null ;
125
148
}
126
- if (camera != null ) {
127
- camera .lock ();
128
- camera .release ();
129
- // camera.stopPreview();
130
- camera .release ();
131
- }
132
149
}
133
150
}
0 commit comments