Форум: "Media";
Текущий архив: 2007.07.15;
Скачать: [xml.tar.bz2];
ВнизНастройка звука в DirectShow Найти похожие ветки
← →
Ketrikken (2006-10-23 16:11) [0]Я пытаюсь поменять настройки звука через кодек....
procedure TDSCapture.SetAudioProperties;
var
MediaType: TAMMediaType;
pVih: WAVEFORMAT; //вообще должен быть не waveformat а waveformatex, но не нашла, где он описан, они вроде идентичны
Config: IAMStreamConfig;
scc: audio_STREAM_CONFIG_CAPS;
pmtConfig: pammediatype;
begin
if FAudioCompressFilter<>nil then //это фильтр компрессора аудио
begin
if failed (FCaptureGraphBuilder.FindInterface(
nil,
nil, .
FAudioCompressFilter,
IID_IAMStreamConfig, Config)) then
exit;
try
if Config.GetStreamCaps(0, pmtConfig, scc) <> s_ok then exit;
pVih := wAvEFORMAT(pmtConfig.pbFormat^);
....
pvih.nChannels := 1;
......
pmtConfig.pbFormat := pointer(@pvih);
if (Config.SetFormat(_ammediatype(pmtConfig^))) <>s_ok the exit;
finally
Config:=nil;
end;
end;
Он мне выдает, что ошибка в функции Config.SetFormat(_ammediatype(pmtConfig^)) и равна она VFW_E_INVALIDMEDIATYPE
Скажите пожалуйста, что я делаю не так?
← →
AbrosimovA © (2006-10-24 11:16) [1]Из MMSystem.pas
PWaveFormatEx = ^TWaveFormatEx;
{$EXTERNALSYM tWAVEFORMATEX}
tWAVEFORMATEX = packed record
wFormatTag: Word; { format type }
nChannels: Word; { number of channels (i.e. mono, stereo, etc.) }
nSamplesPerSec: DWORD; { sample rate }
nAvgBytesPerSec: DWORD; { for buffer estimation }
nBlockAlign: Word; { block size of data }
wBitsPerSample: Word; { number of bits per sample of mono data }
cbSize: Word; { the count in bytes of the size of }
end;
← →
han_malign © (2006-10-26 16:55) [2]with PWaveFormat(pmtConfig.pbFormat)^ do begin
nChannels:= 1;
nBlockAlign:= nChannels * wBitsPerSample div 8;
nAvgBytesPerSec:= nBlockAlign * nSamplesPerSec;
end;
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2007.07.15;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.044 c