Экспертная система 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)
Текущее время: 26 сентября 2018, 09:27
Выполнено за 0.04 сек.
Рейтинг@Mail.ru