- Forum-Beiträge: 236
28.12.2013, 20:41:03 via Website
28.12.2013 20:41:03 via Website
Ich versuche eine kleine App mit Videoaufnahmefunktion zu schreiben, bekomme aber immer einen Absturz und eine IOException. Ich weiss mittlerweile einfach nicht weiter, und weiss auch nicht, was ich da jetzt falsch mache. Villeicht könnt Ihr mir ja weiterhelfen?
Hier ist mein Code:
Manifest Berechtigungen
2 <uses-permission
3 android:name="android.permission.FLASHLIGHT"
4 android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
5 android:protectionLevel="normal" />
6 <uses-permission android:name="android.hardware.camera.autofocus" />
7 <uses-permission android:name="android.hardware.camera" />
8 <uses-permission android:name="android.hardware.camera.flash" />
9 <uses-permission android:name="android.hardware.Camera.setParameters" />
10 <uses-permission android:name="android.permission.WRITE_SETTINGS" />
11 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
12 <uses-permission android:name="android.permission.RECORD_AUDIO"/>
13 <uses-permission android:name="android.permission.RECORD_VIDEO"/>
Code für den MediaRecorder und den SurfaceHolder
2 SurfaceHolder holder = surface.getHolder();
3 holder.addCallback(this);
4 holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
5 holder.setSizeFromLayout();
6 }
7 private void initMediaRecorder() {
8 isRecording = false;
9 recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
10 recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
11 CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
12 recorder.setProfile(profile);
13 File dir = new File(Environment.getExternalStorageDirectory(),
14 this.getClass().getPackage().getName());
15 dir.mkdirs();
16 videofile = new File(dir.getAbsolutePath(), new SimpleDateFormat(
17 "'IMG_'yyyyMMddHHmmss'.mp4'").format(new Date()));
18 recorder.setOutputFile(videofile.getAbsolutePath());
19 }
20 public void recStart(final View View) {
21 if (isRecording) {
22 recorder.stop();
23 initMediaRecorder();
24 prepareMediaRecorder();
25 } else {
26 recorder.start();
27 isRecording = true;
28 }
29 }
30 private void prepareMediaRecorder() {
31 recorder.setPreviewDisplay(holder.getSurface());
32 try {
33 recorder.prepare();
34 } catch (IllegalStateException e) {
35 e.printStackTrace();
36 } catch (IOException e) {
37 e.printStackTrace();
38 }
39 }
Hier die Fehlermeldungen
212-28 20:25:06.314: E/AndroidRuntime(30563): java.lang.IllegalStateException: Could not execute method of the activity
312-28 20:25:06.314: E/AndroidRuntime(30563): at android.view.View$1.onClick(View.java:3600)
412-28 20:25:06.314: E/AndroidRuntime(30563): at android.view.View.performClick(View.java:4106)
512-28 20:25:06.314: E/AndroidRuntime(30563): at android.view.View$PerformClick.run(View.java:17052)
612-28 20:25:06.314: E/AndroidRuntime(30563): at android.os.Handler.handleCallback(Handler.java:615)
712-28 20:25:06.314: E/AndroidRuntime(30563): at android.os.Handler.dispatchMessage(Handler.java:92)
812-28 20:25:06.314: E/AndroidRuntime(30563): at android.os.Looper.loop(Looper.java:137)
912-28 20:25:06.314: E/AndroidRuntime(30563): at android.app.ActivityThread.main(ActivityThread.java:5118)
1012-28 20:25:06.314: E/AndroidRuntime(30563): at java.lang.reflect.Method.invokeNative(Native Method)
1112-28 20:25:06.314: E/AndroidRuntime(30563): at java.lang.reflect.Method.invoke(Method.java:511)
1212-28 20:25:06.314: E/AndroidRuntime(30563): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
1312-28 20:25:06.314: E/AndroidRuntime(30563): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
1412-28 20:25:06.314: E/AndroidRuntime(30563): at dalvik.system.NativeStart.main(Native Method)
1512-28 20:25:06.314: E/AndroidRuntime(30563): Caused by: java.lang.reflect.InvocationTargetException
1612-28 20:25:06.314: E/AndroidRuntime(30563): at java.lang.reflect.Method.invokeNative(Native Method)
1712-28 20:25:06.314: E/AndroidRuntime(30563): at java.lang.reflect.Method.invoke(Method.java:511)
1812-28 20:25:06.314: E/AndroidRuntime(30563): at android.view.View$1.onClick(View.java:3595)
1912-28 20:25:06.314: E/AndroidRuntime(30563): ... 11 more
2012-28 20:25:06.314: E/AndroidRuntime(30563): Caused by: java.lang.IllegalStateException
2112-28 20:25:06.314: E/AndroidRuntime(30563): at android.media.MediaRecorder.start(Native Method)
2212-28 20:25:06.314: E/AndroidRuntime(30563): at de.aleks.camera.MainActivity.recStart(MainActivity.java:247)
2312-28 20:25:06.314: E/AndroidRuntime(30563): ... 14 more
Ich wäre für jede Hilfe sehr Dankbar!
MfG
Sam
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.