purebasic.info

PureBasic forum
Текущее время: Сб дек 15, 2018 3:15 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: VLC
СообщениеДобавлено: Вс фев 10, 2013 3:25 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11336
Благодарил (а): 4 раз.
Поблагодарили: 443 раз.
Наверняка вы слышали, а может и пользуетесь VLC-плеером.
Пример как воспроизводить видео с его помощью. Он для текущей версии 2.0.5.0.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
hWnd=OpenWindow(0,0,0,400,400,"")
 
*inst = libvlc_new(0, #Null)
*m = libvlc_media_new_path(*inst, "Video.avi")
*mp = libvlc_media_player_new_from_media(*m)
libvlc_media_release(*m)
libvlc_media_player_set_hwnd(*mp, hwnd)
libvlc_audio_set_volume(*mp, 100)
libvlc_media_player_play (*mp)
 
Repeat
  Event = WaitWindowEvent()
Until Event  = #PB_Event_CloseWindow
 
libvlc_media_player_stop(*mp)
Delay(200)
libvlc_media_player_release(*mp)
libvlc_release(*inst)
Delay(200)

Рядом с прогой должно быть ядро плеера (libvlc.dll и libvlccore.dll) и папка plugins.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс фев 10, 2013 6:19 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6413
Благодарил (а): 21 раз.
Поблагодарили: 201 раз.
Пункты репутации: 52
Пётр писал(а):
Пример как воспроизводить видео

А где в коде что то типа
OpenLibrary(0, "libvlc.dll")?
Как код сам догадывается, к какой либе относятся эти процедуры libvlc_?

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс фев 10, 2013 6:34 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11336
Благодарил (а): 4 раз.
Поблагодарили: 443 раз.
kvitaliy писал(а):
А где в коде что то типа
OpenLibrary(0, "libvlc.dll")
У меня сделано через импорт.
В общем, нужно сохранить этот код в папку с libvlc.dll.
Код:
1
2
polib.s=#PB_Compiler_Home+"Compilers\polib.exe"
RunProgram(polib, "/out:libvlc.lib libvlc.dll", GetCurrentDirectory())

Это должна быть библиотека именно из версии 2.0.5.0 плеера. Дело в том что в разных версиях отличаются имена функций и количество аргументов в них.
Далее нужно открыть код в версии PB 4.31 (можно в более поздних, но будет лишняя писанина в коде, см. ниже) и запустить прогу.
Появится файл libvlc.lib.
Далее импортируем из него функции, примерно так:
Код:
1
2
3
4
5
6
7
8
9
ImportC "libvlc.lib"
  libvlc_new(a, b)
  libvlc_media_new_path(a, b.p-ascii)
  libvlc_media_player_new_from_media(a)
  libvlc_media_release(a)
  libvlc_media_player_set_hwnd(a, b)
  libvlc_audio_set_volume(a, b)
  libvlc_media_player_play(a)
EndImport

Это если создать lib-файл в PB 4.31, а если в версии по новее, то придется еще писать алиасы, типа:
Код:
1
libvlc_new(a, b) As "libvlc_new"



Но можно сделать через динамическую загрузку DLL и прототипы. Но получится больше кода.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB