如何使用JNI实例化Java对象(Delphi)

麦可

我对使用Delphi编程还是很陌生,对Java一无所知。但是,我需要使用RAD Studio编写一个程序,该程序可以读取音频输入的幅度。我无法在Delphi中找到一种方法(我负担得起),但确实找到了使用Android API的方法。该解决方案似乎位于MediaRecorder对象中,因此我尝试将其与此代码一起使用。

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;

在我看来,此代码无效,因为没有该对象的实例。但是,Recorder:= new MediaRecorder()(android想要的方式)不起作用,而Recorder:= MediaRecorder.Create(我认为Delphi通常想要的方式)也不起作用如果有人知道如何获取对象的实例或者知道从Delphi / RAD Studio获取音频幅度的更简单方法,请告诉我。

达莉娅(Dalija Prasnikar)

要在Delphi中创建Java类对象实例(在您的情况下为实现该JMediaRecorder接口的类的实例),请使用以下代码:

Recorder := TJMediaRecorder.JavaClass.init;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章