Добрый день !!!
может у кого есть пример как проиграть буфер на android устройстве ?
на windows делал через
procedure TMainFormEmu.PlayBuffer(Buffer: array of byte); //процедура проигрывает буфер
begin
with header do
begin
wFormatTag := WAVE_FORMAT_PCM; // формат РСМ
nChannels := 1; // моно
nSamplesPerSec := 44100; // частота дискретитатции 44.1 Кгц
wBitsPerSample := 8; // выборка 8 бит
nBlockAlign := nChannels * (wBitsPerSample div 8);
nAvgBytesPerSec := nSamplesPerSec * nBlockAlign;
cbSize := 0;
end;
// if Opened = true then stopPlay;
hEvent:=CreateEvent(nil,false,false,nil);
if WaveOutOpen(addr(waveOut), 0, @header, hEvent, 0, CALLBACK_WINDOW) <> MMSYSERR_NOERROR then
begin
CloseHandle(hEvent);
Exit;
end;
pBuf := GlobalAlloc(GMEM_MOVEABLE and GMEM_SHARE, length(Buffer));
pBuffer := GlobalLock(pBuf);
with outHdr do
begin
lpData := PBuffer;
dwBufferLength := length(Buffer);
dwUser := 0;
dwFlags := 0;
dwLoops := 0
end;
err:= WaveOutPrepareHeader(waveOut, @outHdr, sizeof(outHdr));
if Err <> 0 then Exit;
copyMemory(pBuffer, @Buffer, length(Buffer));
err:= WaveOutWrite(waveOut, @outHdr, sizeof(outHdr));
if Err <> 0 then Exit;
waveOutReset(waveOut);
waveOutUnprepareHeader(waveOut,@outHdr,sizeof(wavehdr));
waveOutClose(waveOut);
end;