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

Вниз

Запись звука с линейного входа в wav файл   Найти похожие ветки 

 
tse   (2003-11-09 00:07) [0]

Подскажите как можно записать звук через линейный вход в wav файл средствами Delphi. Это необходимо для jhufybpfwbb хранения архивом звуковой информации.
Спасибо.


 
Dmitry   (2003-11-09 09:37) [1]

1. Кинь на форму MediaPlayer (вкладка "System")

2. Создай пустой wav-файл:

function CreateNewWave(NewFileName: string): Boolean;
var
DeviceID: Word;
Return: LongInt;
MciOpen: TMCI_Open_Parms;
MciRecord: TMCI_Record_Parms;
MciPlay: TMCI_Play_Parms;
MciSave: TMCI_SaveParms;
MCIResult: LongInt;
Flags: Word;
TempFileName: array[0..255] of char;
begin
if FileExists(NewFileName) then DeleteFile(NewFileName);
MediaPlayer1.Close;

StrPCopy(TempFileName, NewFileName);
MciOpen.lpstrDeviceType := "waveaudio";
MciOpen.lpstrElementName := "";
Flags := Mci_Open_Element or Mci_Open_Type;
MCIResult := MciSendCommand(0, MCI_OPEN, Flags, LongInt(@MciOpen));

DeviceID := MciOpen.wDeviceId;

MciRecord.dwTo := 1;
Flags := Mci_To or Mci_Wait;
MCIResult := MciSendCommand(DeviceID, Mci_Record, Flags, LongInt(@MciRecord));

mciPlay.dwFrom := 0;
Flags := Mci_From or Mci_Wait;
MciSendCommand(DeviceId, Mci_Play, Flags, LongInt(@MciPlay));

mciSave.lpfileName := TempFilename;
Flags := MCI_Save_File or Mci_Wait;
MCIResult := MciSendCommand(DeviceID, MCI_Save, Flags, LongInt(@MciSave));

Result := MciSendCommand(DeviceID, Mci_Close, 0, LongInt(nil)) = 0;
end;


3. Запиши звук с линейного входа:

CreateNewWave("c:\temp.wav");
MediaPlayer1.FileName:="c:\temp.wav";
MediaPlayer1.Open;
MediaPlayer1.Wait:=False;
MediaPlayer1.StartRecording;


4. Сохрани файл:

MediaPlayer1.Stop;
MediaPlayer1.FileName:="c:\mysoundfile.wav";
MediaPlayer1.Save;


 
tse   (2003-11-09 14:27) [2]

Спасибо Dmitry - записать звук получилось, только уровень звука почти на нуле и качество оставляет желать лучшего(хотя чувствительность линейного входа на максимуме). В программе CoolEdit запись того же сигнала происходит с гораздо большим уровнем и качеством. Может подскажешь как этого добиться?


 
savva   (2003-11-11 08:58) [3]

два пути:
1) http://www.torry.net/audio.htm
2) http://msdn.microsoft.com/library/en-us/multimed/htm/_win32_audio_compression_manager.asp


 
Александр П   (2003-11-12 03:37) [4]

На мой взгляд, наилучшее решение - сходить на un4seen.com
(сайт известной библиотеки для работы со звуком BASS) и
выгрести оттуда всё что можно (все библиотеки freeware),
получишь и готовый пример как "налету" записать звук не
только в WAV, но и в OGG и MP3. Рекомендую.



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

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

Наверх




Память: 0.45 MB
Время: 0.011 c
3-43308
Pavelius
2004-02-10 11:32
2004.03.14
Мнения о


3-43275
dolmat
2004-01-23 13:45
2004.03.14
Нужен компонент для работы с базами .cds


3-43268
Andrew2004
2004-02-12 07:33
2004.03.14
Каскадное удаление в Delphi, Interbase


3-43260
MadGhost
2004-02-13 08:29
2004.03.14
DBGrid как узнать выделена ли строка?


1-43599
Zelius
2004-03-02 13:33
2004.03.14
Вопрос по TActionManager





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский