Je suis encore assez nouveau pour la programmation en Delphi et je ne connais rien à Java. Cependant, j'ai besoin d'écrire un programme en utilisant RAD Studio qui peut lire l'amplitude d'une entrée audio. J'ai été incapable de trouver un moyen de le faire en Delphi (que je pouvais me permettre) mais j'ai trouvé un moyen d'utiliser l'API Android. La solution semble être dans l'objet MediaRecorder donc j'ai essayé de l'utiliser avec ce code.Comment instancier un objet java en utilisant JNI (Delphi)
var
Form1: TForm1;
RecorderObj: Jobject;
Recorder: JMediaRecorder;
procedure TForm1.FormCreate(Sender: TObject);
begin
Recorder:= MediaRecorder; // <------- The problem is here.
Recorder.setAudioSource(1); // should set the recording device to the mic
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Text:= IntToStr(Recorder.getMaxAmplitude);
end;
Il me semble que ce code ne fonctionne pas car il n'y a pas d'instance de l'objet. Cependant, Enregistreur: = nouveau MediaRecorder() (la façon dont android le veut) ne fonctionne pas et ne le fait pas Enregistreur: = MediaRecorder.Create (la façon dont je pense que Delphi le veut généralement) Si quelqu'un sait comment obtenir un instance de l'objet ou connaît un moyen plus facile d'obtenir l'amplitude audio de Delphi/RAD Studio s'il vous plaît faites le moi savoir.
Enregistreur: = TJMediaRecorder.JavaClass.init; Jetez également un oeil à l'unité FMX.Media.Android, il contient différentes classes pour la capture de médias –
@DalijaPrasnikar: cela devrait être une réponse, pas un commentaire. –
@DalijaPrasnikar: Les réponses ne doivent pas être longues, juste correctes. 'Recorder: = TJMediaRecorder.JavaClass.init;' - c'est une réponse assez complète (et correcte) à moi :-) Donnez-vous du crédit. –