我正在使用RAD Studio 10.2東京和在Delphi編程。Android MediaRecorder JNI問題(德爾福)
我對使用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;
這似乎會產生多個問題。
問題#1:
雖然我知道,在Java媒體記錄的設置應該是這個樣子
Recorder.setAudioSource(MediaRecorder.AudioSource.MIC).
這不是東西,我可以在RAD Studio企業進入。我看了一下API,發現它應該是1的整數。問題是它給我一個錯誤,說它找不到音頻源。
問題2:
我需要設置的路徑使用
Recorder.setOutputFile()
與此問題的文件是,它僅接受JStrings作爲輸入。我到處都找過的地方,發現誰使用
StringToJString('my super cool string')
幾個人,我認爲這是我不知道的,但因爲當我使用它,它不工作庫的一部分。
如果您知道另一種獲取Android音頻源讀取振幅的方法,我也會接受這個答案,因爲這是我正在嘗試解決的整體問題。
感謝您的快速和知識的答案。你偶然知道了解這種跨語言程序設計的好資源嗎?我還沒有找到一個全面的來源。 – Michael
@Michael這些可能有所幫助:https://www.youtube.com/watch?v = GcuYc7F0lIU,http://blog.blong.com/search/label/Android –