Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2016, 17:27   #1
pas2
Пользователь
 
Регистрация: 02.01.2016
Сообщений: 42
По умолчанию VLC player

подскажите почему не воспроизводится видео... файл с библиотеками прилагается
Код:
unit Unit2;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,libvlc,dialform,ExtCtrls, StdCtrls, ToolWin, ComCtrls, ImgList, Buttons;
type
  TForm3 = class(TForm)
    Panel1: TPanel; Panel2: TPanel; Panel3: TPanel; Memo1: TMemo;    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ImageList1: TImageList;
    BitBtn1: TBitBtn;
    OpenDialog1: TOpenDialog;
    BitBtn2: TBitBtn;
    TrackBar1: TTrackBar;
    Label1: TLabel;
    CheckBox1: TCheckBox;
    ProgressBar1: TProgressBar;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure CheckBox1Click(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    vlc:integer;
    libOK :boolean;
  end;
var  Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     if VLC_IsPlaying(vlc) then VLC_Stop(vlc);
end;
procedure TForm3.FormCreate(Sender: TObject);
var
 err :integer;
 args:array[0..1000] of pchar;
 val :TValue;
 apath :string;
begin
     Memo1.Clear;
     err := VLD_LoadLibrary;
     if err<>VLD_SUCCESS then
     begin
        case err of
        VLD_NOLIB   : ShowMessage('OOPS! libvlc.dll not found!');
        VLD_NOTFOUND: ShowMessage('libvlc.dll invalide ?!');
        end;
        if err= VLD_NOLIB then
        begin
             if (MessageDlg('Find root directory for libvlc.dll and registry it?',
                 mtConfirmation, [mbOK, mbCancel],0)=mrOK) and
                          (OKHelpBottomDlg.ShowModal=mrOK) then
             begin
                       apath := OKHelpBottomDlg.DirectoryListBox1.Directory;
                       VLD_Registry(apath);
                       err:=VLD_LastError;
                       if err<>VLD_SUCCESS then
                       BEGIN
                            Application.Terminate;
                            exit;
                       END;
             end
                                                           else
             begin
                       Application.Terminate;
                       exit;
             end;
        end
                           else
             BEGIN
                  Application.Terminate;
                  exit;
             END;
     end;
     vlc:= VLC_Create;
     args[0]:=pchar(VLD_LibPath); // Lie or libvlc.dll wont work :(
     args[1]:=nil;
     VLC_Init(vlc,1,@args[0]);
     Caption:=Caption+' [libvcl-'+VLC_Version+']';
    val.AsInteger:=Panel1.Handle;
     err := VLC_VariableSet(vlc,'drawable',val);
     TrackBar1.Position := VLC_VolumeGet(vlc);
end;
procedure TForm3.BitBtn2Click(Sender: TObject);
var
 s:string;
 i, err :integer;
begin
     if not OpenDialog1.Execute then exit;
     if VLC_IsPlaying(vlc) then VLC_Stop(vlc);
     VLC_PlaylistClear(vlc);
     Memo1.Clear;
     for i := 0 to OpenDialog1.Files.Count - 1 do
     begin
          s:=UTF8Encode(OpenDialog1.Files[i]);
          VLC_AddTarget(vlc,PChar(s),nil,0,PLAYLIST_APPEND,PLAYLIST_END);
          Memo1.Lines.Add(OpenDialog1.Files[i]);
     end;
end;
procedure TForm3.CheckBox1Click(Sender: TObject);
begin
     VLC_VolumeMute(vlc);
end;
procedure TForm3.ToolButton1Click(Sender: TObject);
begin
     if vlc>0 then
          VLC_Play(vlc);
end;
procedure TForm3.ToolButton2Click(Sender: TObject);
begin
     if vlc<>0 then
          VLC_Pause(vlc);
end;
procedure TForm3.ToolButton3Click(Sender: TObject);
begin
     if vlc<>0 then
          VLC_Stop(vlc);
end;
procedure TForm3.ToolButton5Click(Sender: TObject);
var
 err :integer;
 apath :string;
begin
     if OKHelpBottomDlg.ShowModal= mrOK then
     begin
          apath := OKHelpBottomDlg.DirectoryListBox1.Directory;
          VLD_Registry(apath);
          err:=VLD_LastError;
          if err<>VLD_SUCCESS then
          BEGIN
               Application.Terminate;
               exit;
          END;
          ShowMessage('libvlc.dll is registred succecfuly.'#10#13'Restart yout application!');
          Application.Terminate;
          exit;
     end;
end;
procedure TForm3.TrackBar1Change(Sender: TObject);
begin
     VLC_VolumeSet(vlc, TrackBar1.Position);
end;
end.
vlc.part01.rar
vlc.part02.rar
vlc.part03.rar
vlc.rar - исх
pas2 вне форума Ответить с цитированием
Старый 02.01.2016, 19:08   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Судя по коду, можно предположить, что не инициализирована библиотека VLC SDK.
Цитата:
Сообщение от pas2 Посмотреть сообщение
Код:
if vlc>0 then
          VLC_Play(vlc);
Пройдитесь отладчиком по всему процессу до запуска воспроизведения. Это даст более точную картину происходящего.
Цитата:
Сообщение от pas2 Посмотреть сообщение
файл с библиотеками прилагается
От файла с библиотеками толку особо никакого нет. Их без труда можно легально взять из дистрибутива VLC (если, конечно, Вы не брали их где-то со стороны, но это уже отдельный разговор).
Streletz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
vlc styles UKRtortik Общие вопросы Delphi 6 15.08.2014 12:15
vlc Darcangel Мультимедиа в Delphi 2 24.01.2012 19:17
VLC FORM Pavel Kozlov Общие вопросы Delphi 8 04.05.2010 18:57
Delphi и VLC Player - программное переключение каналов ViNcHeStEr Мультимедиа в Delphi 17 17.01.2010 13:12
VideoLAN VLC HellStranger Мультимедиа в Delphi 0 27.10.2009 17:26