java.lang.RuntimeException: starten fehlgeschlagen

Ich versuche zur Aufzeichnung von audio in einer meiner Tätigkeiten mit MediaRecorder. Ein Teil der code ist unten dargestellt.

File file = new File(AppConstants.MSGS_DIR, filename);
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(AudioSource.MIC);
recorder.setOutputFormat(OutputFormat.THREE_GPP);
recorder.setAudioEncoder(AudioEncoder.AMR_WB);
recorder.setOutputFile(file.getAbsolutePath());
try {
    recorder.prepare();
    recorder.start();
} catch (IOException e) {
    System.out.println("Exception: " + e.getMessage());
}

Habe ich angesichts der folgenden Berechtigungen in der manifest-Datei.

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

aber in der Zeile recorder.start() ich bin immer der Laufzeit-exception. Logcat zeigt die folgenden Fehlermeldungen an.

09-23 15:47:54.462: E/AndroidRuntime(8697): FATAL EXCEPTION: main
09-23 15:47:54.462: E/AndroidRuntime(8697): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mypackage/com.mypackage.RecordingActivity}: java.lang.RuntimeException: start failed.
09-23 15:47:54.462: E/AndroidRuntime(8697):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2250)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2300)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at android.app.ActivityThread.access$600(ActivityThread.java:144)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1295)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at android.os.Looper.loop(Looper.java:150)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at android.app.ActivityThread.main(ActivityThread.java:5162)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at java.lang.reflect.Method.invokeNative(Native Method)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at java.lang.reflect.Method.invoke(Method.java:525)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:744)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at dalvik.system.NativeStart.main(Native Method)
09-23 15:47:54.462: E/AndroidRuntime(8697): Caused by: java.lang.RuntimeException: start failed.
09-23 15:47:54.462: E/AndroidRuntime(8697):     at android.media.MediaRecorder.start(Native Method)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at com.mypackage.RecordingActivity.startRecording(RecordingActivity.java:169)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at com.mypackage.RecordingActivity.onCreate(RecordingActivity.java:107)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at android.app.Activity.performCreate(Activity.java:5288)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
09-23 15:47:54.462: E/AndroidRuntime(8697):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2214)

Versucht, die Fragen entsprechend der Fehler in stackoverflow aber nicht den Schluss zu, eine gültige Antworten von Ihnen. Bitte prüfen Sie dies und helfen Sie mir, was läuft falsch im code.

FYI> dieses Stück code, die versagt haben, nur bestimmte Geräte. Bin ich fehlt jegliche zusätzliche Berechtigungen?

stackoverflow.com/a/10497885/1777090
Ich bin auf der Suche nach audio-Aufnahme, die ich fühle, nichts zu tun mit der Breite und Höhe. Die Antwort, die Sie ponited out für video-Aufnahme 🙂
dieses Stück code, die versagt haben, nur bestimmte Geräte - Sie können mehr details über diese Geräte. Wie, was ist die Plattform-version auf? AudioEncoder.AMR_WB ist erst ab API10.
Code funktioniert nicht in der Geräte:<i> sony ericson version 4.0.3, ASUS Genfone der version 4.3</i>. Code-Ordnung, die in der Moto-g 4.4.4, Anmerkung 2 OS-version 4.4.2.
AppConstants.MSGS_DIR = Umgebung.getExternalStorageDirectory().getPath() + "/MYAppFolder/"; und der Dateiname ist einige zufällige Zeichenfolge. Ich bin in der Lage, um den Ordner zu erstellen und die Datei (mit fileName0 in diesem Ordner erfolgreich, aber nicht in der Lage zu schreiben, alle Daten auf es.

InformationsquelleAutor Jeeri | 2014-09-23

Schreibe einen Kommentar