Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Вниз

Помогите отправить звук на выход карты   Найти похожие ветки 

 
Вовчик   (2003-12-25 11:43) [0]

Подскажите пожалуйста, как сгенерированные программой значения передать на выход звуковой карты (8-битный сигнал), если можно, то с кодом. Спасибо!


 
Digitman ©   (2003-12-25 13:56) [1]

см. хэлп "Microsoft Multimedia Programmer"s reference", все топики, касающиеся waveOut-функций


 
konstantinov ©   (2003-12-26 22:54) [2]

Как вывести звук через звуковую карту?
Previous  Top  Next  

uses  
 MMSystem;  

type  
 TVolumeLevel = 0..127;  

procedure MakeSound(Frequency{Hz}, Duration{mSec}: Integer; Volume: TVolumeLevel);  
 {writes tone to memory and plays it}  
var  
 WaveFormatEx: TWaveFormatEx;  
 MS: TMemoryStream;  
 i, TempInt, DataCount, RiffCount: integer;  
 SoundValue: byte;  
 w: double; // omega ( 2 * pi * frequency)  
const  
 Mono: Word = $0001;  
 SampleRate: Integer = 11025; // 8000, 11025, 22050, or 44100  
 RiffId: string = "RIFF";  
 WaveId: string = "WAVE";  
 FmtId: string = "fmt ";  
 DataId: string = "data";  
begin  
 if Frequency > (0.6 * SampleRate) then  
 begin  
   ShowMessage(Format("Sample rate of %d is too Low to play a tone of %dHz",  
     [SampleRate, Frequency]));  
   Exit;  
 end;  
 with WaveFormatEx do  
 begin  
   wFormatTag := WAVE_FORMAT_PCM;  
   nChannels := Mono;  
   nSamplesPerSec := SampleRate;  
   wBitsPerSample := $0008;  
   nBlockAlign := (nChannels * wBitsPerSample) div 8;  
   nAvgBytesPerSec := nSamplesPerSec * nBlockAlign;  
   cbSize := 0;  
 end;  
 MS := TMemoryStream.Create;  
 with MS do  
 begin  
   {Calculate length of sound data and of file data}  
   DataCount := (Duration * SampleRate) div 1000; // sound data  
   RiffCount := Length(WaveId) + Length(FmtId) + SizeOf(DWORD) +  
     SizeOf(TWaveFormatEx) + Length(DataId) + SizeOf(DWORD) + DataCount; // file data  
   {write out the wave header}  
   Write(RiffId[1], 4); // "RIFF"  
   Write(RiffCount, SizeOf(DWORD)); // file data size  
   Write(WaveId[1], Length(WaveId)); // "WAVE"  
   Write(FmtId[1], Length(FmtId)); // "fmt "  
   TempInt := SizeOf(TWaveFormatEx);  
   Write(TempInt, SizeOf(DWORD)); // TWaveFormat data size  
   Write(WaveFormatEx, SizeOf(TWaveFormatEx)); // WaveFormatEx record  
   Write(DataId[1], Length(DataId)); // "data"  
   Write(DataCount, SizeOf(DWORD)); // sound data size  
   {calculate and write out the tone signal} // now the data values  
   w := 2 * Pi * Frequency; // omega  
   for i := 0 to DataCount - 1 do  
   begin  
     SoundValue := 127 + trunc(Volume * sin(i * w / SampleRate)); // wt = w * i / SampleRate  
     Write(SoundValue, SizeOf(Byte));  
   end;  
   {now play the sound}  
   sndPlaySound(MS.Memory, SND_MEMORY or SND_SYNC);  
   MS.Free;  
 end;  
end;  

// How to call the function:  

procedure TForm1.Button1Click(Sender: TObject);  
begin  
 MakeSound(1200, 1000, 60);  
end;  

Взято с сайта http://www.swissdelphicenter...


 
Вовчик   (2003-12-29 12:28) [3]

Спасибо



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.031 c
1-1080732957
Borealis
2004-03-31 15:35
2004.04.18
MDIChild в DLL


4-1076074289
able
2004-02-06 16:31
2004.04.18
Сокеты на WinAPI


14-1080424671
kdd
2004-03-28 00:57
2004.04.18
Delphi 8


1-1080557456
Эли
2004-03-29 14:50
2004.04.18
Открыть окно Эксплорера в своей программе


3-1080117156
Шурик Ш
2004-03-24 11:32
2004.04.18
Не получается создать числовое поле заданной точности!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский