小编Mic*_*ael的帖子

Android MediaRecorder JNI(Delphi)的问题

我正在使用RAD Studio 10.2 Tokyo并在Delphi中编程.

我使用JNI库的Java对象存在一般问题.

我想要做的是在按下按钮之间找到Android音频源的最大音频幅度.

这是我正在使用的代码.

var
  Form1: TForm1;
  Recorder: JMediaRecorder;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not assigned(Recorder) then
  begin
    Recorder:= TJMediaRecorder.Create();
    Recorder.setAudioSource(1);
    Recorder.setOutputFormat(1);
    Recorder.setAudioEncoder(1);
    Recorder.setOutputFile(TPath.GetTempPath+'/test');
    Recorder.prepare();
    Recorder.start();
  end;
  Label1.Text:=IntToStr(Recorder.getMaxAmplitude());
end;
Run Code Online (Sandbox Code Playgroud)

这似乎会产生多个问题.

问题#1:

虽然我知道在java中,媒体录制器设置看起来应该是这样的

Recorder.setAudioSource(MediaRecorder.AudioSource.MIC).
Run Code Online (Sandbox Code Playgroud)

这不是我可以在RAD Studio中输入的内容.我看了一下API,发现它应该是1的整数.问题是它给我一个错误,说它无法找到音频源.

问题#2:

我需要为文件设置路径

Recorder.setOutputFile()
Run Code Online (Sandbox Code Playgroud)

这个问题是它只接受JStrings作为输入.我到处看了一眼,发现了一些使用过的人

StringToJString('my super cool string')
Run Code Online (Sandbox Code Playgroud)

我认为这是我不知道的库的一部分,因为它在我使用它时不起作用.

如果你知道另一种方法来获得一个Android音频源的振幅读数,我也会接受这个答案,因为这是我试图解决的整体问题.

java delphi android mediarecorder delphi-10.2-tokyo

2
推荐指数
1
解决办法
244
查看次数

标签 统计

android ×1

delphi ×1

delphi-10.2-tokyo ×1

java ×1

mediarecorder ×1