Главная страница
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.04 c
1-1129826345
BobbyDigital
2005-10-20 20:39
2005.11.13
функция time


1-1129714837
Mamed
2005-10-19 13:40
2005.11.13
Perevod so Ci na paskal


4-1126194693
vvvaaa
2005-09-08 19:51
2005.11.13
Работа с памятью


9-1119861677
Маздай
2005-06-27 12:41
2005.11.13
Падение: Закапываюсь!


14-1127485001
Lamer@fools.ua
2005-09-23 18:16
2005.11.13
Kyiv Mastak Party