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

Вниз

Как подключяются кодаки?   Найти похожие ветки 

 
ronyn   (2005-05-06 01:46) [0]

Пжалста помогите, научите  как надо сделать , что бы к проигрывателю подключались дополнительные кодаки? Я из начинающих - поэтому прошу поподробнее, желательно на примере.
Заранее благодарю.


 
dmitry501 ©   (2005-05-06 05:38) [1]

ronyn   (06.05.05 1:46)
Скачиваешь с интернета, жмешь setup.exe и все!


 
ronyn   (2005-05-06 12:53) [2]

Я имею ввиду, чтобы мой проигрыватель - TMediaPlayer, искал и подключал эти кодаки.


 
WondeRu ©   (2005-05-06 15:18) [3]

DSPack


 
kai ©   (2005-05-06 21:47) [4]

ronyn   (06.05.05 01:46)  
обычно декодеры поставляются в виде activex-ов
достаточно скопировать их в папочку %WIN%\SYSTEM32
и зарегистрировать вызвав функцию DllRegisterServer. либо с помощью regsvr32.exe (первый вариант лучше)

вот кусок кода устаноки декодера xvid (требуется 2 файла: xvid.ax, xvid.dll)


   FillChar(aSystemDirZ, Length(aSystemDirZ), 0);
   GetSystemDirectory(aSystemDirZ, 2047);
   fSystemDir := aSystemDirZ;  //кривовато, но перепишу на досуге -)
   try
     if CopyFile(PAnsiChar(ExtractFilePath(Paramstr(0)) + XVID_DECODER_OCX_FILENAME),
        PAnsiChar(IncludeTrailingPathDelimiter(fSystemDir) + XVID_DECODER_OCX_FILENAME), False) and
        CopyFile(PAnsiChar(ExtractFilePath(Paramstr(0)) + XVID_DECODER_DLL_FILENAME),
        PAnsiChar(IncludeTrailingPathDelimiter(fSystemDir) + XVID_DECODER_DLL_FILENAME), False) then
     begin
       _Name := IncludeTrailingPathDelimiter(fSystemDir) + XVID_DECODER_OCX_FILENAME;
     end
     else
     begin
       _Name := ExtractFilePath(Paramstr(0)) + XVID_DECODER_OCX_FILENAME;
     end;
     aHandle := LoadLibrary(PAnsiChar(_Name));
     try
       if (aHandle >= 32) then
       begin
         aFunc := GetProcAddress(aHandle, "DllRegisterServer");
         if Assigned(aFunc) then
           aFunc;
       end;
     finally
       FreeLibrary(aHandle);
     end;
   except  //невозможно установить видео декодер
   end;

переменные:
 aSystemDirZ: array[0..2047] of Char;
 fSystemDir: String;                    
 aHandle: Cardinal;
 aFunc: TRegFunc;


естественно, надо проверку наличия и версии установленного activex-а сделать перед копированием/регистрацией. если интересно - могу написать как. ну и права админа нужны для доступа к system32.
еще есть нюансы связанные с xvid, которые жить мешают немного...

удачи.


 
kai ©   (2005-05-07 00:14) [5]

type
TRegFunc = function : HResult; stdcall;


 
ronyn   (2005-05-07 02:09) [6]

Kai, спасибо за помощь. Буду узнать о том, как делать проверку наличия и версии установленного activex-а  перед копированием/регистрацией.Чем больше комментариев - тем лучше, т.к. я из начинающих многого не знаю ещё. Заранее благодарю.


 
kai ©   (2005-05-07 11:29) [7]

пример проверки зарегистрированного декодера xvid


 _Reg := TRegistry.Create(KEY_READ);
 try
   _Reg.RootKey := HKEY_CLASSES_ROOT;
   if _Reg.KeyExists(XVID_DECODER_PATH_KEY) then
   begin
     _Reg.OpenKey(XVID_DECODER_PATH_KEY, False);
     _Name := _Reg.ReadString("");
     if FileExists(_Name) then
     begin
       //тут можно проверить версию (а можно и не проверять ;) )
       XVidInstRequired := False;
     end;
   end;
 finally
   _Reg.Free;
 end;


константы:
XVID_DECODER_PATH_KEY = "\CLSID\{64697678-0000-0010-8000-00AA00389B71}\InprocServer32";
переменные:
_Reg: TRegistry;
_Name: String;  
XVidInstRequired: Boolean;


 
ronyn   (2005-05-08 16:25) [8]

Не получается почему -то. Говорит сто TRegistry - не задекларированный идентификатор.


 
kai ©   (2005-05-08 17:10) [9]

ronyn   (08.05.05 16:25) [8]

interface

uses Registry;


 
ronyn   (2005-05-09 01:10) [10]

Спасибо,kai, проверю - сообщу результат. очень благодарен.


 
ronyn   (2005-05-10 01:47) [11]

Приложение запускается, но файлы DVD - MPEG2,1,bup, ifo  не проигрываются. В чём может быть дело?


 
kai ©   (2005-05-10 07:25) [12]

ronyn   (10.05.05 01:47) [11]
другие кодеки нужно наверно. какие - не знаю, я только с mpeg4 работал.



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

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

Наверх




Память: 0.49 MB
Время: 0.026 c
1-1125302111
highlander
2005-08-29 11:55
2005.09.25
Дерево классов в Делфи


14-1125597027
Alex_Korn
2005-09-01 21:50
2005.09.25
Изменчивая CRC32.


14-1125945109
Imbalancer
2005-09-05 22:31
2005.09.25
Need help VBA


14-1125252689
Twister1222
2005-08-28 22:11
2005.09.25
Сомнения Delphi2005


1-1125745385
RzCoDer
2005-09-03 15:03
2005.09.25
создание TBitmap из нескольких