|
Вопрос # 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 (статус: Посетитель)
Вопрос отправлен: 20 марта 2017, 23:11
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 21 марта 2017, 17:59; участников в обсуждении: 2.
|
min@y™ (статус: Доктор наук), 20 марта 2017, 23:36 [#1]:
Это не имя файла, а URL для скрипта, который вытаскивает видео в эмбеддинг.
Тебе зачем это всё?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
casio (статус: Посетитель), 21 марта 2017, 17:59 [#2]:
min@y™: все разобрался на свежую голову не увидел ошибку. Спасибо
|
21 марта 2017, 18:13: Статус вопроса изменён на решённый (изменил автор вопроса — casio)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|