Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

AVI DirectDraw, DirectShow ... Как?   Найти похожие ветки 

 
Wm.DIGGER ©   (2005-06-14 17:50) [0]

Проблемка, как воспроизвести звук из AVI"шки ... Видео воспроизводится, как показано ниже. Как воспроизводить звук? Т.Е. нужно взять поток со звуком, а дальше что с ним делать ... ?


var IStep,AVIError,GetFrameNumber,i,j:Integer;
   AVIFile:PAVIFile;
   AVIInfo:PAVIFileInfo;
   AVIStream:PAVIStream;
   GetF:PGetFrame;
   BitMapHInfo:PBitMapInfoHeader;
   AVIFileName:string;
   TBmp:TBitMap;
   Bits:PChar;
   DC_Handle:HDC;

begin
AVIFileName := "fn.avi";

AVIFileInit;
AVIError := AVIFileOpen(AVIFile,PChar(AVIFileName),0,nil);
if AVIError = AVIERR_OK then
  begin
   AVIFileInfo(AVIFile,AVIInfo,SizeOf(AVIInfo));
   if AVIFileGetStream(AVIFile,AVIStream,StreamTypeVIDEO,0) = AVIERR_OK then
     begin
      GetF := AVIStreamGetFrameOpen(AVIStream,nil);
      if GetF <> nil then
        begin

         for GetFrameNumber := 0 to 99 do
          begin

           BitMapHInfo := AVIStreamGetFrame(GetF,GetFrameNumber);
           if BitMapHInfo <> nil then
             begin
              TBmp := TBitMap.Create;
              TBmp.Width := BitMapHInfo.biWidth;
              TBmp.Height := BitMapHInfo.biHeight;
              Bits := Pointer(Integer(BitMapHInfo) + SizeOf(TBitMapInfoHeader));
              DC_Handle := CreateDC("Display",nil,nil,nil);
              TBmp.Handle := CreateDIBitmap(DC_Handle,BitMapHInfo^,CBM_INIT,Bits,PBitMapInfo(BitMapHInfo)^,DIB_RGB_COLORS);
              DeleteDC(DC_Handle);
              TBmp.Free;
             end;

           end;
         AVIStreamGetFrameClose(GetF);
        end;
      AVIStreamRelease(AVIStream);
     end;
   AVIFileRelease(AVIFile);
  end else ShowMessage("Error:)");
AVIFileExit;
end;


 
Nic   (2005-06-14 18:53) [1]

Мне тоже очень интересно, как это сделать. Кто-нибудь, подскжите!


 
Анонимщик1   (2005-06-15 13:15) [2]

Ты же работаешь через VfW, а не через собственно DirectShow. Так что я не понял чего тебе нужно.


 
Ozone ©   (2005-06-22 06:45) [3]

Как вариант скопировать весь аудио-поток в PAVIStream, сохранить во временный WAV и проиграть... опять-таки будут проблемы с синзронизацией с видео... :)


 
Fredy314 ©   (2005-06-27 22:07) [4]

По идее нужно направить аудиопоток на звуковуху только как я не знаю, гдето видел но давно-давно.



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

Текущий архив: 2005.11.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.031 c
2-1129799356
Gear
2005-10-20 13:09
2005.11.13
Как сделать главную форму без рамки но...


2-1129785588
V-A-V
2005-10-20 09:19
2005.11.13
Где я не прав в запросе?


1-1129990116
Tori
2005-10-22 18:08
2005.11.13
проблемы перехода от exe к dll


2-1129842524
Dmitrich
2005-10-21 01:08
2005.11.13
Наследование Self


2-1129548791
dreamse
2005-10-17 15:33
2005.11.13
Проблема с составлением фильтра