Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 651

/ вопрос решён /

Здравствуйте, эксперты! Построил граф (посредством DSPACK), так вот видео открывать с локального диска получается и выводить на панель, а вот ссылку из интернета на видео почему то не хочет. Подскажите куда смотреть...

 
type
  TPlayerMode = (Stop, Play, Paused); // режим воспроизведения
 
FileName := 'https://vk.com/video-38213334_456239324'
 
var
  hr: HRESULT = 1; 
  pCurrent, pDuration: Double;// Текужее положение и длительность фильма
  Mode: TPlayerMode; // режим воспроизведения
//интерфейсы для построения и управления графом
  pGraphBuilder        : IGraphBuilder         = nil; //сам граф
  pMediaControl        : IMediaControl         = nil; //управление графом
  pMediaEvent          : IMediaEvent           = nil; //обработчик событий
  pVideoWindow         : IVideoWindow          = nil; //задает окно для вывода
  pMediaPosition       : IMediaPosition        = nil; //позиция проигрывания
  pBasicAudio          : IBasicAudio           = nil; //управление звуком
 
procedure TForm1.Initializ;
//процедура построения графа
begin
//освобождаем подключенные интерфейсы
  if Assigned(pMediaPosition) then pMediaPosition := nil;
  if Assigned(pBasicAudio) then pBasicAudio  := nil;
  if Assigned(pVideoWindow) then pVideoWindow := nil;
  if Assigned(pMediaEvent) then pMediaEvent := nil;
  if Assigned(pMediaControl) then pMediaControl := nil;
  if Assigned(pGraphBuilder) then pGraphBuilder := nil;
//получаем интерфейс построения графа
  hr := CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, pGraphBuilder);
  if hr<>0 then begin
    ShowMessage('Не удается создать граф');
    exit;
  end;
//получаем интерфейс управления
  hr := pGraphBuilder.QueryInterface(IID_IMediaControl, pMediaControl);
  if hr<>0 then begin
    ShowMessage('Не удается получить интерфейс IMediaControl');
    exit;
  end;
//получаем интерфейс событий
   hr := pGraphBuilder.QueryInterface(IID_IMediaEvent, pMediaEvent);
   if hr<>0 then begin
    ShowMessage('Не удается получить интерфейс событий');
    exit;
  end;
//получаем интерфейс управления окном вывода видео
  hr := pGraphBuilder.QueryInterface(IID_IVideoWindow, pVideoWindow);
  if hr<>0 then begin
    ShowMessage('Не удается получить IVideoWindow');
    exit;
  end;
//получаем интерфейс управления звуком
   hr := pGraphBuilder.QueryInterface(IBasicAudio, pBasicAudio);
  if hr<>0 then begin
    ShowMessage('Не удается получить аудио интерфейс');
    exit;
  end;
//получаем интерфейс  управления позицией проигрывания
  hr := pGraphBuilder.QueryInterface(IID_IMediaPosition, pMediaPosition);
   if hr<>0 then begin
    ShowMessage('Не удается получить интерфейс управления позицией');
    exit;
  end;
 
//загружаем файл для проигрывания
  hr := pGraphBuilder.RenderFile(StringToOleStr(filename),'');
  if hr<>0 then begin
    ShowMessage('Не удается прорендерить файл');
    exit;
  end;
 
//видео на панель
   pVideoWindow.Put_Owner(Panel1.Handle);окна, в нашем случае Panel1
   pVideoWindow.Put_WindowStyle(WS_CHILD OR WS_CLIPSIBLINGS);
   pVideoWindow.put_MessageDrain(Panel1.Handle);
   pVideoWindow.SetWindowPosition(0,0,Panel1.ClientRect.Right,Panel1.ClientRect.Bottom); 
 
procedure TForm1.Player;
begin
Initializ;
//процед.проигрыв
pMediaControl.Run;
mode:=play;
end;

casio Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: casio (статус: Посетитель)
Вопрос отправлен: 20 марта 2017, 23:11
Состояние вопроса: решён, ответов: 0.


Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 21 марта 2017, 17:59; участников в обсуждении: 2.
min@y™

min@y™ (статус: Доктор наук), 20 марта 2017, 23:36 [#1]:

Это не имя файла, а URL для скрипта, который вытаскивает видео в эмбеддинг.

Тебе зачем это всё?

Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
casio

casio (статус: Посетитель), 21 марта 2017, 17:59 [#2]:

min@y™: все разобрался на свежую голову не увидел ошибку. Спасибо

21 марта 2017, 18:13: Статус вопроса изменён на решённый (изменил автор вопроса — casio)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:59
Выполнено за 0.03 сек.