FreeBasic
Главная
Вход
Регистрация
Суббота, 21.12.2024, 17:35Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Window9 и VLC-ActiveX
WQДата: Вторник, 03.03.2015, 17:06 | Сообщение # 1
Полковник
Группа: Проверенные
Сообщений: 215
Репутация: 7
Статус: Offline
Хочу заставить встроенный браузер IE из Window9 воспроизводить видео с помощью VLC-ActiveX (ставится при установленном  VLC-плеере)
Код такой
Код
#Define UNICODE
#Include Once "disphelper/disphelper.bi"
#Include "window9.bi"
Dim Shared As Integer hwnd,event
Dim Shared As IDispatch Ptr ieApp
hwnd=OpenWindow("WebGadget",10,10,800,600) : CenterWindow(hwnd)
ieApp=WebGadget(1,10,50,760,500,"about",WS_VSCROLL Or WS_HSCROLL,WS_EX_CLIENTEDGE)
ButtonGadget(3,10,10,80,20,"SetHTML")

dhInitialize(TRUE)
dhToggleExceptions(TRUE)
WebGadgetNavigate(ieApp, "about:blank")

Do
     event=WaitEvent()
     If Event=EventClose Then
        End
     ElseIf  Event=EventGadget Then
        Select Case EventNumber
           Case 3
              Dim As String sVLC
              Dim As Byte Ptr data_

            Var handle=Read_file("C:\1.html")
              If handle<>-1 Then
                 data_=Read_DataS(handle,Size_File(handle))
                 sVLC= PeekS(data_)
              EndIf
              Close_file(handle)
              DeAllocate(data_)

              dhPutValue(ieApp, ".Document.Body.innerHTML = %s", sVLC)
        End Select
     EndIf
Loop

В файле 1.html содержится такой код
Код
<OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"
codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab"
width="400" height="300" id="vlc" events="True">
<param name="Src" value="file:///C:\1.mp4"/>
<param name="ShowDisplay" value="True"/>
<param name="AutoLoop" value="True"/>
<param name="AutoPlay" value="True"/>
<param name="Volume" value="100">
</OBJECT>


В общем, элемент плеера не появляется, хотя проигрывание начинается, звук идет.

Если же файл 1.html открыть через WebGadgetNavigate, то все работает. Встроенный IE из скрипта Autoit видео показывает видео.

Чтение файла - пример, вообще html-код будет браться из переменной


Сообщение отредактировал WQ - Вторник, 03.03.2015, 17:20
 
haavДата: Вторник, 03.03.2015, 19:50 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Да фиг его знает. Я попробовал просто загрузить 1.html в разные браузеры. В IE 11 то появляется плеер, то нет. В firefox вообще не работает, возможно где-то в настройках отключены activeX...
WebGadget (IE 6) работает только с WebGadgetNavigate и то не все форматы (wmv работает, а воткнул avi - нифига).


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
WQДата: Вторник, 10.03.2015, 15:17 | Сообщение # 3
Полковник
Группа: Проверенные
Сообщений: 215
Репутация: 7
Статус: Offline
Я тоже по-всякому пробовал - создавал встроенный объект IE, кроме window9, с помощью IUP и на основе примера в сборке FB.
Подключался из одного процесса к другому как здесь http://freebasic.ucoz.com/forum/4-284-1 - тоже не получается.

Так что придется через файл, сначала создать, открыть, удалить(
Но нужно еще получить доступ к объекту vlc через getElementsByName, пытаюсь разобраться, disphelper - это ужас(
Кстати, на оф форуме наткнулся на другую COM-библиотеку http://www.freebasic.net/forum....xSuite2
Объект какой-нибудь создать вроде удается, но дальше не получается, и примеров нет...

Windows Media Player встроить получается без проблем, но он хуже VLC в ряде случаев, например при сетевом проигрывании
Или отказываться от браузера и сразу лезть в VLC-либы, искать c++ примеры плеера...

Добавлено (10.03.2015, 15:17)
---------------------------------------------

Удалось разобраться с созданием плеера прямо на основе libvlc.dll, возможно выложу пример в раздел исходников.


Сообщение отредактировал WQ - Среда, 29.04.2015, 12:41
 
  • Страница 1 из 1
  • 1
Поиск: