Поиск
Показаны результаты для тегов 'waveoutwrite'.
Найдено: 1 результат
-
Добрый день !!! может у кого есть пример как проиграть буфер на 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;