Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как подключяются кодаки? [D7, WinXP]


ronyn ©   (2005-05-06 01:46:00) 

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


kai   (2005-05-10 07:25:00) [1]

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


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

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


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

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


kai   (2005-05-08 17:10:00) [4]

ronyn   (08.05.05 16:25) [8]

interface

uses Registry;


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

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


kai   (2005-05-07 11:29:00) [6]

пример проверки зарегистрированного декодера 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-07 02:09:00) [7]

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


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

type
TRegFunc = function : HResult; stdcall;


kai   (2005-05-06 21:47:00) [9]

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, которые жить мешают немного...

удачи.


WondeRu   (2005-05-06 15:18:00) [10]

DSPack


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

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


dmitry501   (2005-05-06 05:38:00) [12]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо