Статьи / Медиаплеер на основе libvlc

Медиаплеер на основе libvlc


Отправить ссылку:

Медиаплеер за полчаса на основе libvlc

Что такое libvlc?

Большинство мультимедиа плееров уже давно стали бесплатными. Пользователям предоставлен широкий список бесплатных мультимедиа плееров. Но что делать разработчикам, которые хотят создать мультимедиа плеер для своих нужд, например для своего сервиса? Написание плеера с нуля очень трудоёмкая задача, долго реализовывать поддержку большого количества форматов, кодеков и других нюансов. Но всегда можно использовать сторонние библиотеки. Их количество не мало, но я в своей статье расскажу, как использовать libvlc, часть VLC плеера.
Если коснуться VLC плеера, то его вы можете и так использовать, т.к. исходных код его доступен. Но разбираться в мегабайтах кода не самое лучшее занятие, тем более что VLC в большинстве написан на C. А вот libvlc можно назвать ядром этого плеера. По сути, сам VLC это всего лишь программа, которая использует libvlc для проигрывания роликов. Эту библиотеку можно взять из любого дистрибутива VLC плеера.
Libvlc - это динамическая библиотека (обычно), которая содержит множество экспортных функций. Список функций находится в исходниках VLC плеера по адресу: /include/vlc/. И другим приложениям ничего не мешает использовать их. Теперь давайте приступим к созданию нашего плеера.

Подготовка библиотеки libvlc к использованию

Первое, что нам необходимо сделать, это получить прототипы функций, их мы берём из исходных файлов VLC плеера(/include/vlc/), которые можно загрузить с официального сайта плеера. Также если вы не хотите скачивать все исходные файлы, вы можете скачать файлы с прототипами функций libvlc(1.0.2).
Теперь нам необходимо создать Lib файл для линковки, чтобы не прописывать загрузку функций вручную. Для этого необходимо установить VLC плеер.
Я использовал Microsoft Visual C++ 2008 Express Edition для компиляции приложения и для создания lib файла.
Для начала запускаем командную строку CMD. Переходим в директорию:
"C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\"
Запускаем файл vcvars32.bat, для настройки переменных окружения.
Набираем команду:
"C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\dumpbin.exe" /exports "C:\Program Files\VideoLAN\VLC\libvlc.dll" > "C:\Program Files\VideoLAN\VLC\libvlc.def"
Потом редактируем файл libvlc.def, так чтобы он был похож на следующий:

EXPORTS
libvlc_add_intf
libvlc_audio_get_channel
libvlc_audio_get_mute
libvlc_audio_get_track
libvlc_audio_get_track_count
libvlc_audio_get_track_description
libvlc_audio_get_volume
libvlc_audio_output_device_count
...............

Пример моего модифицированного файла вы можете скачать файл libvlc.def.
Осталось набрать команду:
lib /def:"C:\Program Files\VideoLAN\VLC\libvlc.def" /out:"C:\Program Files\VideoLAN\VLC\libvlc.lib" /machine:x86
И вы получите libvlc.lib файл.

Создание мультимедиа плеера

Для создания плеера я использовал Microsoft Visual C++ 2008 Express Edition. В принципе, мой пример только демонстрирует, как необходимо использовать libvlc. Вы можете скачать мой проект мультимедиа плеера.
Наиболее важные отрывки кода приведены ниже:
Проект содержит добавочные h файлы, которых нет в Visual C++ 2008 Express Edition, также файлы, взятые из VLC: libvlc.dll и libvlccore.dll, которые вы можете заменить своими файлами.
Мой пример загружает файл и показывает его первые 10 секунд.

Заключение

В статье вы увидели, как можно использовать libvlc. Более сложные примеры вы можете найти по следующим ссылкам:
http://wiki.videolan.org/LibVLC_Tutorial
http://wiki.videolan.org/LibVLC_SampleCode_Thumbnailer
http://wiki.videolan.org/LibVLC_SampleCode_SDL
Ещё стоит отметить, что для создания своего плеера есть и другой метод, например, использование ActiveX компонента VLC плеера.


При полном или частичном копировании необходимо указывать прямую ссылку на данную статью.




Олег (Дата )

Все вопросы и предложения высылайте на адрес soft_support@list.ru. Необходимо в заголовке указать название статьи.

Оставь свой отзыв


Ответьте на вопрос (ответ маленькими буквами)* :
1+4?(ответ цифрами)

Nick
e-mail: alphabetanick@mail.ru
Дата: 20.10.10


Дата: 27.08.10

Oleg

Дата: 26.08.10


Дата: 26.08.10

e-mail: danko_d@mail.ru
Дата: 18.03.10

e-mail: danko_d@mail.ru
Дата: 10.03.10