[FFmpeg] Создание среды разработки SDL (Введение в SDL | Загрузите библиотеку разработки SDL | Скопируйте динамическую библиотеку в каталог C:\Windows\SysWOW64 | Настройте библиотеку разработки SDL для проекта Qt)
[FFmpeg] Создание среды разработки SDL (Введение в SDL | Загрузите библиотеку разработки SDL | Скопируйте динамическую библиотеку в каталог C:\Windows\SysWOW64 | Настройте библиотеку разработки SDL для проекта Qt)

1. Введение в SDL

1. Введение в SDL

SDL, полное английское название — «Simple DirectMedia Layer», представляет собой кроссплатформенную библиотеку разработки мультимедиа с открытым исходным кодом, разработанную на языке C;

В проект была импортирована библиотека разработки SDL, и разработчики могут использовать один и тот же код языка C для разработки мультимедийного прикладного программного обеспечения на нескольких платформах, таких как: Linux/Windows/MacOS;

При разработке FFmpeg используйте SDL для воспроизведения аудиоданных, видеоданных, данных изображений, декодированных FFmpeg, и обработки событий ввода с помощью мыши и клавиатуры;

2. Веб-сайты, связанные с SDL

Веб-сайты, связанные с SDL:

2. Настройка среды разработки SDL

1. Загрузите библиотеку разработки SDL.

Чтобы построить среду разработки SDL на платформе Windows, вам нужно всего лишь загрузить заголовочные файлы, библиотеки функций dll и lib и использовать их напрямую;

SDL Скачать адрес : https://github.com/libsdl-org/SDL/releases/tag/release-2.0.10 , Выбирайте здесь 2.0.10 версия SDL ;

Вы также можете скачать его из исходного кода этого блога. https://download.csdn.net/download/han1202012/89407726 ;

Загрузите вариант SDL2-devel-2.0.10-VC.zip, который представляет собой библиотеку разработки для платформы Windows с использованием компилятора Visual Studio;

SDL2-devel-2.0.10-mingw.tar.gz соответствует библиотеке разработки, соответствующей компилятору MinGW;

нравиться Если ты хочешьскачатьдругойверсия SDL Версия, ссылка https://github.com/libsdl-org/SDL/releases Страница загрузки ;

2. Анализ содержимого библиотеки разработки SDL.

После загрузки библиотеки разработки SDL2-devel-2.0.10-VC.zip распакуйте ее;

Разархивированное содержимое выглядит следующим образом:

  • include Оглавление Внизда SDL Похожие иззаголовочный файл ;
  • lib Оглавление Внизда динамическая библиотека ;
    • Ниже из SDL2.lib документ какдинамическая библиотекаизимпортировать Библиотека , Документсередина не содержит фактического кода функции. , Содержит только ссылки на соответствующие DLL динамическая Информация необходимая для библиотеки ; При построении программы , Компоновщик будет использовать .lib документ для анализа пары DLL динамическая библиотека Функция по ссылке , Определение функции существуют DLL середина ,Справочное определениесуществовать lib документсередина ;
    • SDL2.dll да динамическая библиотека Dynamic Link Library , Содержит скомпилированный код ;
    • lib Оглавление Внизиметь 32 Кусочек и 64 Кусочек из Библиотека разработки, здесь использовать 32 Кусочекиз Библиотека разработки , Потому что раньше FFmpeg развиватьсредасерединаиспользоватьиз Библиотека разработкитакжеда 32 Кусочекиз ;

Войдите в каталог x86 и просмотрите конкретное содержимое динамической библиотеки:

3. Скопируйте динамическую библиотеку в каталог C:\Windows\SysWOW64.

Воля SDL2-devel-2.0.10-VC\SDL2-2.0.10\lib\x86</font> в каталоге SDL2.dll динамическая библиотека скопировать в C:\Windows\SysWOW64 Оглавление середина ;

Этот шаг обязателен ,Как и перед копированием FFmpeg из dll динамическая библиотекаприезжать C:\Windows\SysWOW64 Оглавление Такой же, Если не копировать , Возникает ошибка при запуске программы ;

4. Создайте проект Qt.

Войдите в Qt Creator и выберите опцию «Панель меню/Файл/Новый файл или проект»;

существоватьнеожиданно возникнутьиздиалоговое окносередина, выбирать Нет Qt проект " Non-Qt Project " , Внизиз " Plain C Application " Тип приложения , Затем нажмите на правый нижний угол из " Choose " кнопка ;

настраивать Название проекта и создать путь , Проверять " Установить как путь к проекту по умолчанию " Параметры ;

Система сборки использовать По умолчанию из qmake Вот и все ;

Сборочный комплект Kit Все Проверятьначальство ;

Версияконтроль выбирать По умолчанию Вот и все ;

Воля " Сборочный комплект " настраиватьдля По умолчанию из " MSVC 2015 " Вот и все ;

Эффект от бега следующий:

5. Настройте библиотеку разработки SDL для проекта Qt.

Воля SDL2-devel-2.0.10-VC.zip Библиотека разработки После декомпрессии полное Оглавление , скопировать в Qt проектсередина ;

существовать Qt проектиз Создать скрипт SDL_Demo.pro середина , Конфигурация Копировать SDL Библиотека разработкииз заголовочный файл и динамическая библиотека ,Конфигурациянравиться Внизсодержание :

Язык кода:javascript
копировать
win32 {
INCLUDEPATH += $$PWD/SDL2-2.0.10/include
LIBS += $$PWD/SDL2-2.0.10/lib/x86/SDL2.lib
}

Завершить из Конфигурациядокументанравиться следующим образом:

Язык кода:javascript
копировать
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += \
        main.c

win32 {
INCLUDEPATH += $$PWD/SDL2-2.0.10/include
LIBS += $$PWD/SDL2-2.0.10/lib/x86/SDL2.lib
}

после , существовать C языкпроектсередина , импортировать SDL.h заголовочный файл , может быть осуществлено SDL развитый ;

Язык кода:javascript
копировать
#include <SDL.h>

Полная ссылка на код https://download.csdn.net/download/han1202012/89407726 ;

6. Пример окна SDL

использоватьнравиться Внизкод , Создайте SDL окно :

Язык кода:javascript
копировать
#include <stdio.h>

#include <SDL.h>

#undef main
int main()
{
    printf("Hello World!\n");

    // создавать SDL окнообъект
    SDL_Window *window = NULL;

    // инициализация SDL среда , для воспроизведения видео
    SDL_Init(SDL_INIT_VIDEO);

    // создавать SDL Window окнообъект
    window = SDL_CreateWindow("SDLокно",
                              SDL_WINDOWPOS_UNDEFINED,
                              SDL_WINDOWPOS_UNDEFINED,
                              800,
                              600,
                              SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE);

    // Обнаружение SDL окноданетсоздаватьуспех
    if(!window)
    {
        printf("создавать SDL окно не удалось код ошибки :%s\n", SDL_GetError());
        return 1;
    }

    // Задерживать 3 Второй
    SDL_Delay(3000);

    // Закрыть окно
    SDL_DestroyWindow(window);

    // Освободить системные ресурсы
    SDL_Quit();

    return 0;
}

Полная ссылка на код https://download.csdn.net/download/han1202012/89407726 ;

Эффект от бега следующий:

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода