4

我对使用 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 获取音频幅度的更简单方法,请告诉我。

4

1 回答 1

2

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

Recorder := TJMediaRecorder.JavaClass.init;
于 2017-08-09T20:57:00.460 回答