Installing miniaudio Library Установка библиотеки miniaudio

A step-by-step guide to downloading, extracting, and configuring the single-file miniaudio.h audio library on Windows and Ubuntu. Пошаговое руководство по скачиванию, распаковке и настройке заголовочной аудио-библиотеки miniaudio.h в Windows и Ubuntu.

If you haven't set up C/C++ development tools on your system, follow the relevant guide: Если вы еще не настроили инструменты разработки C/C++ на вашей системе, следуйте соответствующей инструкции:

Step 1: Download Source Code Шаг 1: Скачивание исходного кода

Download the latest release zip archive directly from GitHub Releases: Скачайте zip-архив последнего релиза напрямую из GitHub Releases:

Download miniaudio Releases Скачать релизы miniaudio

For Ubuntu, you can download it via wget in terminal: В Ubuntu вы можете скачать архив с помощью wget через терминал:

sudo apt update && sudo apt install -y wget unzip

cd ~
wget https://github.com/mackron/miniaudio/archive/refs/tags/0.11.21.zip -O miniaudio-0.11.21.zip

Step 2: Extract the Library Шаг 2: Распаковка библиотеки

Option A: Windows Вариант A: Windows

Extract the downloaded archive so that miniaudio.h is placed in C:\libs\miniaudio-0.11.21\include\miniaudio.h. Распакуйте скачанный архив так, чтобы файл miniaudio.h находился в C:\libs\miniaudio-0.11.21\include\miniaudio.h.

Option B: Ubuntu Вариант B: Ubuntu

Create the include directory and extract miniaudio.h into ~/libs/miniaudio-0.11.21/include: Создайте папку include и распакуйте miniaudio.h в ~/libs/miniaudio-0.11.21/include:

mkdir -p ~/libs/miniaudio-0.11.21/include
unzip -j miniaudio-0.11.21.zip "miniaudio-0.11.21/miniaudio.h" -d ~/libs/miniaudio-0.11.21/include/
rm -f miniaudio-0.11.21.zip

Step 3: Create Project Directory Шаг 3: Создание директории проекта

Create a workspace folder and a new directory for your miniaudio test project: Создайте рабочую папку и новую директорию для вашего тестового проекта miniaudio:

Windows (Command Prompt / PowerShell)

mkdir C:\projects\miniaudio-test
cd C:\projects\miniaudio-test

Ubuntu (Terminal)

mkdir -p ~/projects/miniaudio-test
cd ~/projects/miniaudio-test

Step 4: Create Source Files (main.c & CMakeLists.txt) Шаг 4: Создание исходных файлов (main.c и CMakeLists.txt)

Windows (Terminal / Notepad)

notepad main.c
notepad CMakeLists.txt

Ubuntu (Terminal / Nano)

nano main.c
nano CMakeLists.txt

1. File Contents for main.c 1. Содержимое файла main.c

#define MINIAUDIO_IMPLEMENTATION
#include <miniaudio.h>
#include <stdio.h>

int main(int argc, char *argv[]) {
    ma_engine engine;
    ma_result result = ma_engine_init(NULL, &engine);
    if (result != MA_SUCCESS) {
        printf("Failed to initialize miniaudio engine.\n");
        return -1;
    }

    // Access the active backend via the device's context
    ma_device* pDevice = ma_engine_get_device(&engine);
    const char* backendName = ma_get_backend_name(pDevice->pContext->backend);

    printf("miniaudio engine initialized successfully!\n");
    printf("Active Audio Backend: %s\n", backendName);

    ma_engine_uninit(&engine);
    return 0;
}

2. File Contents for CMakeLists.txt 2. Содержимое файла CMakeLists.txt

cmake_minimum_required(VERSION 3.21)
project(miniaudio_test C)

add_executable(app main.c)

if(WIN32)
    target_include_directories(app PRIVATE C:/libs/miniaudio-0.11.21/include)
else()
    # On Linux, find miniaudio headers in ~/libs
    target_include_directories(app PRIVATE $ENV{HOME}/libs/miniaudio-0.11.21/include)
    
    # Link the standard math library (-lm) and thread library (-lpthread)
    target_link_libraries(app PRIVATE m pthread)
endif()

Step 5: Create Build & Execution Scripts Шаг 5: Создание скриптов сборки и запуска

Windows (MinGW / Batch Scripts)

config-win.bat

cmake -G Ninja -S . -B dist/win

build-win.bat

cmake --build dist/win

run-win.bat

@echo off
.\dist\win\app.exe

Run the scripts sequentially in Command Prompt or PowerShell: Последовательно запустите скрипты в командной строке или PowerShell:

config-win.bat
build-win.bat
run-win.bat

Ubuntu (Bash Scripts)

config-linux.sh

#!/usr/bin/env bash
set -e
cmake -G Ninja -S . -B dist/linux

build-linux.sh

#!/usr/bin/env bash
set -e
cmake --build dist/linux

run-linux.sh

#!/usr/bin/env bash
set -e
./dist/linux/app

Grant execute permissions on Ubuntu before running: Предоставьте права на выполнение в Ubuntu перед запуском:

chmod +x config-linux.sh build-linux.sh run-linux.sh
./config-linux.sh
./build-linux.sh
./run-linux.sh

Step 6: Expected Output Шаг 6: Ожидаемый результат

When launched, the application initializes the ma_engine and outputs the active audio subsystem for your operating system: При запуске приложение инициализирует ma_engine и выводит активную аудио-подсистему для вашей операционной системы:

Windows

miniaudio engine initialized successfully!
Active Audio Backend: WASAPI

Ubuntu

miniaudio engine initialized successfully!
Active Audio Backend: PulseAudio

Support My Work Поддержать проект

If these tutorials helped you, consider buying me a coffee! Если эти туториалы вам помогли, вы можете поддержать автора.

Sberbank (Russia only) Сбербанк (только для РФ)

Sberbank SBP QR Code

Direct transfer via phone number (Russia only) Перевод по номеру телефона (только для РФ)

+7 (917) 212-29-59

USDT TRC20

USDT TRC20 QR Code

Support via Cryptocurrency Поддержка криптовалютой

TMtY1YifNf6FKvgeFmqKGQR4NStKr3csGp