@AshFTW

Как записать звук с компа?

Всем привет, последняя надежда на вас.
Я пытаюсь программно записать звук, который слышу из компа (internal output). Уже перепробовал все девайсы, все комбинации в portaudio - звук записывает только с микрофона. Однако программа SoundWire использует PortAudio для записи внутреннего звука. Я открыл её в IDA - результат конфигурации:
input_parameters.device = Pa_GetDefaultInputDevice();
    input_parameters.channelCount = 2;
    input_parameters.sampleFormat = paInt16;
    const PaDeviceInfo *input_info = Pa_GetDeviceInfo(input_parameters.device);
    input_parameters.suggestedLatency = input_info->defaultLowInputLatency;
    input_parameters.hostApiSpecificStreamInfo = NULL;

Pa_OpenStream(&stream, &input_parameters, NULL, input_info->defaultSampleRate, paFramesPerBufferUnspecified/*на самом деле тут 338u(которая скорее всего ссылка на sampleRate) и 1(флаг либо 1 семпл на 1 вызов), я решил что на результат не повлияет*/, paClipOff, recordCallback, NULL);


Окей, всё есть, в recordCallback тупо вот это:
int16_t *in = (int16_t *) inputBuffer;
    for(int i = 0; i < LEN(in); i++) {
        cout << in[i] << ":";
    }
    cout << endl;

Типа вроде всё в порядке, всё должно работать, но вот запись звука идёт с микрофона.
Уже несколько дней пытаюсь написать или найти хоть одну рабочую программу, которая записывает внутренний звук (искал по запросам "sound visualize", "audio capture" в github, stackoverflow). Но каждая либо записывает звук с микрофона, либо предлагается JACK, либо там другая ОС (windows).
Gist: main.cpp
  • Вопрос задан
  • 555 просмотров
Пригласить эксперта
Ответы на вопрос 2
skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.
Посмотрите как звук снимает OBS Studio. Правда, он работает через PulseAudio.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы