Синтез звука

Тема в разделе "Общие вопросы по С и С++", создана пользователем SteriuM, 12 май 2007.

Статус темы:
Закрыта.
  1. SteriuM

    SteriuM Гость

    Здравствуйте!
    Скажите пожалуйста как заставить зуковую карту издать желаемый звук на аудио выход? Если у вас имеется код - покажите пожалуйста!!!!
    Интенсивно благодарю!!! :)
     
  2. zubr

    zubr Гость

    Вот, когда то делал:
    Код (Text):
    procedure proc_zvyk;
    begin
    repeat
    If flag_zvyk then
    break;
    if WaitForSingleObject(hev_zvyk, INFINITE)=WAIT_OBJECT_0 then
    begin
    ResetEvent(hev_zvyk);
    waveOutWrite(hzv, @hider, SizeOf(hider));
    waveOutWrite(hzv, @hider1, SizeOf(hider1));
    end;
    until False;
    If hzv<>0 then
    begin
    waveOutReset(hzv);
    waveOutUnPrepareHeader(hzv, @hider, SizeOf(hider));
    waveOutUnPrepareHeader(hzv, @hider1, SizeOf(hider1));
    waveOutClose(hzv);
    CloseHandle(hev_zvyk);
    hev_zvyk:=0;
    hzv:=0;
    end;
    end;

    procedure Initializ_zvyk;
    var
    res:TResourceStream;
    ht, ind:cardinal;
    begin
    flag_zvyk:=False;
    format.wFormatTag:=WAVE_FORMAT_PCM;
    format.nChannels:=2;
    format.nSamplesPerSec:=44100;
    format.nAvgBytesPerSec:=176400;
    format.nBlockAlign:=4;
    format.wBitsPerSample:=16;
    format.cbSize:=0;
    hev_zvyk:=CreateEvent(nil, True, False, 'zvyk');
    ResetEvent(hev_zvyk);
    waveOutOpen(@hzv, WAVE_MAPPER, @format, hev_zvyk, 0, CALLBACK_EVENT);
    ResetEvent(hev_zvyk);
    res:=TResourceStream.Create(HINSTANCE, 'noise', 'WAWFILE');
    res.ReadBuffer(buf, 176400);
    res.Free;
    hider.lpData:=@buf;
    hider.dwBufferLength:=176400;
    hider1.lpData:=@buf;
    hider1.dwBufferLength:=176400;
    waveOutPrepareHeader(hzv, @hider, SizeOf(hider));
    waveOutPrepareHeader(hzv, @hider1, SizeOf(hider1));
    waveOutPause(hzv);
    ht:=CreateThread(nil, 0, @proc_zvyk, nil, 0, ind);
    CloseHandle(ht);
    SetEvent(hev_zvyk);
    end;

    procedure Close_zvyk;
    begin
    If hzv<>0 then
    waveOutPause(hzv);
    If hev_zvyk<>0 then
    SetEvent(hev_zvyk);
    flag_zvyk:=True;
    end;
     
Загрузка...
Похожие Темы - Синтез звука
  1. paxac
    Ответов:
    4
    Просмотров:
    36
  2. diod_
    Ответов:
    16
    Просмотров:
    2.994
  3. aelfa
    Ответов:
    0
    Просмотров:
    5.858
Статус темы:
Закрыта.

Поделиться этой страницей