Доброго времени сутки
недавно для себя открыл что можно из микрофона получить данные потоками:
Uses
..., Androidapi.JNI.Media;
procedure TForm1.Button1Click(Sender: TObject);
var bufferSize: integer;
buffer: TJavaArray<Byte>;
M: TMemoryStream;
begin
audioRecord := TJAudioRecord.JavaClass.init(TJMediaRecorder_AudioSource.JavaClass.MIC,
44100,
TJAudioFormat.JavaClass.CHANNEL_IN_MONO,
TJAudioFormat.JavaClass.ENCODING_PCM_16BIT,
44100 * 2);
(audioRecord as JAudioRecord).startRecording;
buffer := TJavaArray<Byte>.Create(8820);
(audioRecord as JAudioRecord).read(buffer, 0, 8820);
(audioRecord as JAudioRecord).stop;
audioRecord.release;
buffer заполняется данными я проверил все работает (можно код прописать чтобы этот buffer проигрывал)
audioRecord := TJAudioRecord.JavaClass.init(TJMediaRecorder_AudioSource.JavaClass.MIC,
44100,
TJAudioFormat.JavaClass.CHANNEL_IN_MONO,
TJAudioFormat.JavaClass.ENCODING_PCM_16BIT,
44100 * 2);
<--- как мне кажется здесь видно что это формат Wave
я пытаюсь передать это все серверу:
IdUDPClient1.SendBuffer(IdUDPClient1.Host, IdUDPClient1.Port, RawToBytes(buffer, buffer.Length));
сервер запущен на Windows но не получается я слышу только пикание
Вопрос:
как мне передать этот поток серверу (среды Windows) и как его проигрывать на сервере, может у кого есть опыт работы с этом сфере или какой нибудь документация имеется или какой нибудь предложение есть как все это сделать все совете и предложении очень важен
Заранее спасибо согласитесь интересно использовать микрофон так и не дожидая пока он создаст файл
всем удачи