Главная страница
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
14-1129816274
flipper
2005-10-20 17:51
2005.11.13
Никто не может зайти в компик (хр)


14-1129741679
pazitron_brain
2005-10-19 21:07
2005.11.13
Помогите найти ветку.


4-1126628734
begin...end
2005-09-13 20:25
2005.11.13
Значения описателей объектов ядра


14-1130034733
Form1.Canvas..........
2005-10-23 06:32
2005.11.13
Лицензионные проги


2-1130224792
Quest
2005-10-25 11:19
2005.11.13
Работа с Формами