Перейти к содержанию
Fire Monkey от А до Я

azm_ezm_ivan

Пользователи
  • Постов

    11
  • Зарегистрирован

  • Посещение

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Достижения azm_ezm_ivan

  1. задача....снять голос с микрофона и определить dB(примерно) Этот выриант закопипостил...пытался под себя отредактировать. Уже три дня сражаюсь ...решил посмотреть Android API. в итоге вышло вот: unit Unit2; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, Androidapi.JNI.Media, Androidapi.JNIBridge, Androidapi.JNI.JavaTypes, FMX.Platform.Android, FMX.StdCtrls, FMX.Controls.Presentation, java.ioFile; type TForm2 = class(TForm) Button1: TButton; Timer1: TTimer; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } recorder:Jmediarecorder; path:Jstring; end; var Form2: TForm2; implementation {$R *.fmx} procedure TForm2.Button1Click(Sender: TObject); begin recorder.setAudioSource(TJMediaRecorder_AudioSource.JavaClass.MIC);// назначение микрофона recorder.setAudioSamplingRate(44100); recorder.setAudioEncodingBitRate(96000); recorder.setOutputFormat(TJMediaRecorder_OutputFormat.JavaClass.MPEG_4); recorder.setAudioEncoder(tjMediaRecorder_AudioEncoder.JavaClass.AAC); path:=TJFile.JavaClass.getAbsolutePath; // узнаем путь сохранения recorder.setOutputFile(path); recorder.prepare; recorder.start; Timer1.Enabled:=true; //интервал 500 end; procedure TForm2.Timer1Timer(Sender: TObject); var amplit:integer; begin amplit:=recorder.getMaxAmplitude; //узнаем амплитуду Label1.Text:=inttostr(amplit);//выводим на лейбл end; end. Android API Но вот то и них...ра. Извините НЕ ФУНКЦИКЛИРУЕТ !!!! - acces violation at sdress 5490e0d6, accessing adress 00000000 Что за...?
  2. помогите разобраться.... по идее должно проигрывать, но тишина.....? unit Unit5; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,FMX.Platform.Android, Androidapi.JNI.Net, Androidapi.JNIBridge, Androidapi.JNI.JavaTypes, Androidapi.JNI.Media, FMX.Controls.Presentation, FMX.StdCtrls; type TForm5 = class(TForm) Label1: TLabel; Timer1: TTimer; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } AudioRecorder: JAudioRecord; sampleRate: Integer; channelConfig: Integer; audioFormat: Integer; minBufSize: Integer; AudioMem: TMemoryStream; AudioStr: TJavaArray<SmallInt>; enable_audio:Boolean; AudioPlay: JAudioTrack; AudioStream: TJavaArray<SmallInt>; trackmin: Integer; public { Public declarations } end; var Form5: TForm5; implementation {$R *.fmx} procedure TForm5.Button1Click(Sender: TObject); begin (AudioRecorder as JAudioRecord).stop; (AudioRecorder as JAudioRecord).release; trackmin:= TJAudioTrack.JavaClass.getMinBufferSize(11025, TJAudioFormat.JavaClass.CHANNEL_OUT_MONO, TJAudioFormat.JavaClass.ENCODING_PCM_16BIT); AudioStream:= TJavaArray<SmallInt>.Create(trackmin); AudioPlay:= TJAudioTrack.JavaClass.init(TJAudioManager.JavaClass.STREAM_MUSIC, 11025, TJAudioFormat.JavaClass.CHANNEL_OUT_MONO, TJAudioFormat.JavaClass.ENCODING_PCM_16BIT, trackmin, TJAudioTrack.JavaClass.MODE_STREAM); (AudioPlay as JAudiotrack).play; end; procedure TForm5.FormCreate(Sender: TObject); begin enable_audio:=false; sampleRate:= 11025; channelConfig:= TJAudioFormat.JavaClass.CHANNEL_IN_MONO; audioFormat:= TJAudioFormat.JavaClass.ENCODING_PCM_16BIT; // minBufSize = 1024 Bytes minBufSize:= TJAudioRecord.JavaClass.getMinBufferSize(sampleRate, channelConfig, audioFormat); // AudioRecover = 1024*4 = 4096 AudioStr:= TJavaArray<SmallInt>.Create(minBufSize*4); AudioMem:= TMemoryStream.Create; AudioRecorder:= TJAudioRecord.JavaClass.init(TJMediaRecorder_AudioSource.JavaClass.MIC, sampleRate, channelConfig, audioFormat, minBufSize*4); (AudioRecorder as JAudioRecord).startRecording; Timer1.Enabled:= True; end; end.
  3. вернеее ......можно ли при привышении определенного порога громкости от полученного сигнала получить событие ???
×
×
  • Создать...