C
computer_freak
Fortgeschrittenes Mitglied
- 7
Hallo!
Ich versuche seit einigen Tagen verzweifelt den MediaRecorder zum laufen zu bringen. Habe schon umfangreich gegoogelt, aber keine passende Antwort gefunden.
Nun zum eigentlichen Problem:
Und Hier meine Klasse, in der das Problem verursacht wird:
Ich hoffe, jemand kann mich hier etwas aufklären!
Ich versuche seit einigen Tagen verzweifelt den MediaRecorder zum laufen zu bringen. Habe schon umfangreich gegoogelt, aber keine passende Antwort gefunden.
Nun zum eigentlichen Problem:
Code:
04-04 21:12:29.758: ERROR/audio_input(2357): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
04-04 21:12:29.758: ERROR/audio_input(2357): VerifyAndSetParameter failed
04-04 21:12:30.020: ERROR/AuthorDriver(2357): Command 13 completed with error -17
04-04 21:12:30.020: ERROR/MediaRecorder(31285): prepare failed: -17
04-04 21:12:30.020: WARN/System.err(31285): java.io.IOException: prepare failed.
04-04 21:12:30.035: WARN/System.err(31285): at android.media.MediaRecorder._prepare(Native Method)
04-04 21:12:30.039: WARN/System.err(31285): at android.media.MediaRecorder.prepare(MediaRecorder.java:530)
04-04 21:12:30.039: WARN/System.err(31285): at com.testApp.Record.onCreate(Record.java:77)
04-04 21:12:30.039: WARN/System.err(31285): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-04 21:12:30.039: WARN/System.err(31285): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
04-04 21:12:30.043: WARN/System.err(31285): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
04-04 21:12:30.043: WARN/System.err(31285): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
04-04 21:12:30.043: WARN/System.err(31285): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
04-04 21:12:30.043: WARN/System.err(31285): at android.os.Handler.dispatchMessage(Handler.java:99)
04-04 21:12:30.047: WARN/System.err(31285): at android.os.Looper.loop(Looper.java:123)
04-04 21:12:30.047: WARN/System.err(31285): at android.app.ActivityThread.main(ActivityThread.java:4627)
04-04 21:12:30.047: WARN/System.err(31285): at java.lang.reflect.Method.invokeNative(Native Method)
04-04 21:12:30.051: WARN/System.err(31285): at java.lang.reflect.Method.invoke(Method.java:521)
04-04 21:12:30.051: WARN/System.err(31285): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
04-04 21:12:30.055: WARN/System.err(31285): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
04-04 21:12:30.055: WARN/System.err(31285): at dalvik.system.NativeStart.main(Native Method)
04-04 21:12:30.375: INFO/ActivityManager(2464): Displayed activity com.testApp/.Record: 782 ms (total 782 ms)
04-04 21:12:32.540: WARN/PowerManagerService(2464): Timer 0x7->0x3|0x1
04-04 21:12:32.540: INFO/PowerManagerService(2464): Ulight 7->3|0
04-04 21:12:32.942: VERBOSE/WindowManager(2464): Dsptch > Window{484e3d08 InputMethod paused=false}
04-04 21:12:32.942: VERBOSE/InputDevice(2464): ID[0]=0(0) Dn(0=>1)
04-04 21:12:33.051: DEBUG/dalvikvm(2563): GC_EXPLICIT freed 6369 objects / 350352 bytes in 33ms
04-04 21:12:33.821: VERBOSE/WindowManager(2464): Dsptch > Window{484e3d08 InputMethod paused=false}
04-04 21:12:33.821: VERBOSE/InputDevice(2464): ID[0]=0(0) Up(1=>0)
04-04 21:12:34.746: VERBOSE/InputDevice(2464): ID[0]=0(0) Dn(0=>1)
04-04 21:12:34.750: VERBOSE/WindowManager(2464): Dsptch > Window{4858c4a0 com.testApp/com.testApp.Record paused=false}
04-04 21:12:34.856: VERBOSE/WindowManager(2464): Dsptch > Window{4858c4a0 com.testApp/com.testApp.Record paused=false}
04-04 21:12:34.856: VERBOSE/InputDevice(2464): ID[0]=0(0) Up(1=>0)
04-04 21:12:34.903: ERROR/MediaRecorder(31285): start called in an invalid state: 0
04-04 21:12:34.903: DEBUG/AndroidRuntime(31285): Shutting down VM
04-04 21:12:34.903: WARN/dalvikvm(31285): threadid=1: thread exiting with uncaught exception (group=0x4001d7d0)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): FATAL EXCEPTION: main
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): java.lang.IllegalStateException: Could not execute method of the activity
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at android.view.View$1.onClick(View.java:2082)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at android.view.View.performClick(View.java:2461)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at android.view.View$PerformClick.run(View.java:8890)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at android.os.Handler.handleCallback(Handler.java:587)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at android.os.Handler.dispatchMessage(Handler.java:92)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at android.os.Looper.loop(Looper.java:123)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at android.app.ActivityThread.main(ActivityThread.java:4627)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at java.lang.reflect.Method.invokeNative(Native Method)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at java.lang.reflect.Method.invoke(Method.java:521)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at dalvik.system.NativeStart.main(Native Method)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): Caused by: java.lang.reflect.InvocationTargetException
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at com.testApp.Record.recClicked(Record.java:106)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at java.lang.reflect.Method.invokeNative(Native Method)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at java.lang.reflect.Method.invoke(Method.java:521)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at android.view.View$1.onClick(View.java:2077)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): ... 11 more
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): Caused by: java.lang.IllegalStateException
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): at android.media.MediaRecorder.start(Native Method)
04-04 21:12:34.914: ERROR/AndroidRuntime(31285): ... 15 more
Und Hier meine Klasse, in der das Problem verursacht wird:
Code:
package com.testApp;
import java.io.File;
import java.io.IOException;
import android.app.Activity;
import android.content.res.Configuration;
import android.media.MediaPlayer;
import android.media.MediaRecorder;
import android.media.MediaRecorder.OnInfoListener;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class Record extends Activity
{
private boolean IsRecording = false;
private MediaRecorder recorder;
private String tempFilePath = Environment.getExternalStorageDirectory().getAbsolutePath()+ "/Android/data/testApp/" ;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.record);
tempFilePath += String.valueOf(System.currentTimeMillis()) + ".3gp";
Log.d(RECORD_LOG, "onCreate done");
recorder = new MediaRecorder();
//recorder.reset();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); // THREE_GPP = .3gp, RAW_AMR
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
Log.d(RECORD_LOG, "onCreate|tempFilePath=" + tempFilePath);
recorder.setOutputFile(tempFilePath);
recorder.setMaxDuration(6000);
recorder.setOnInfoListener(new OnInfoListener()
{
@Override
public void onInfo(MediaRecorder mr, int what, int extra)
{
if(what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED)
{
Log.d(RECORD_LOG, "recorder.onInfo called");
}
}
});
try
{
recorder.prepare();
}
catch (IllegalStateException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
public void recClicked()
{
if(IsRecording)
{
Log.d(RECORD_LOG, "recClicked entered, IsRecording = true, so we stop that thing");
recorder.stop();
recorder.reset();
recorder = null;
btn_play.setEnabled(true);
}
else
{
Log.d(RECORD_LOG, "recClicked entered, IsRecording = false, so we start that thing");
btn_record.setText(R.string.record_rec2);
recorder.start();
}
IsRecording = !IsRecording;
}
}
Ich hoffe, jemand kann mich hier etwas aufklären!
Zuletzt bearbeitet: