Hallo zusammen,
nachdem das Beispiel von Tim DelChiaro wohl leider nichts aufzeichnet, habe ich auf der Seite
http://stackoverflow.com/questions/2...android-to-mp4
die folgende Delphi-Source gefunden, die die Aufnahme über die Android native
API lösen soll:
Delphi-Quellcode:
var
texture : JSurfaceTexture;
surface: JSurface;
recorder: JMediaRecorder;
begin
texture := TJSurfaceTexture.JavaClass.init(1);
surface := TJSurface.JavaClass.init(texture);
recorder := TJMediaRecorder.Create();
recorder.setPreviewDisplay(surface);
recorder.setAudioSource(AUDIO_MIC);
recorder.setVideoSource(VIDEO_CAMERA);
recorder.setOutputFormat(FORMAT_THREE_GPP);
recorder.setAudioEncoder(AFORMAT_AMR_NB);
recorder.setVideoEncoder(VFORMAT_MPEG_4_SP);
recorder.setMaxDuration(1800000); // 30 minutes
recorder.setVideoSize(320, 240);
recorder.setVideoFrameRate(15);
recorder.setOutputFile(StringToJString(TPath.GetSharedCameraPath + OUTPUT_FILE));
recorder.prepare();
recorder.start();
end;
Wenn recorder.start() ausgeführt wird, dann erhalte ich die folgende Fehlermeldung: "java.lang.IllegalStateException.". Diese hat laut Kommentaren im Internet damit zu tun, dass surface nicht angezeigt wird, was wohl zwingend erforderlich sei. Leider steht da nirgends, wie man das macht.
Im Umgang mit der Android native
API bin ich überhaupt nicht fit. Wie kann ich denn surface einer Anzeige (Image?) auf dem Formular zuweisen oder so initialisieren, dass es angezeigt wird?
Vielen Dank schon mal für eure Antworten und Ideen.
Viele Grüße
Peter
"Der Erfolg besteht manchmal in der Kunst, das für sich zu behalten, was man nicht weiß." Sir Peter Ustinov