Audio loopback control что это

Обновлено: 07.07.2024

In loopback mode, a client of WASAPI can capture the audio stream that is being played by a rendering endpoint device. To open a stream in loopback mode, the client must:

  • Obtain an IMMDevice interface for the rendering endpoint device.
  • Initialize a capture stream in loopback mode on the rendering endpoint device.

After following these steps, the client can call the IAudioClient::GetService method to obtain an IAudioCaptureClient interface on the rendering endpoint device.

WASAPI provides loopback mode primarily to support acoustic echo cancellation (AEC). However, other types of audio applications might find loopback mode useful for capturing the system mix that is being played by the audio engine.

  • In the call to the IMMDeviceEnumerator::GetDefaultAudioEndpoint method, change the first parameter (dataFlow) from eCapture to eRender.
  • In the call to the IAudioClient::Initialize method, change the value of the second parameter (StreamFlags) from 0 to AUDCLNT_STREAMFLAGS_LOOPBACK.

In versions of Windows prior to Windows 10 1703, pull-mode capture client does not receive any events when a stream is initialized with event-driven buffering and is loopback-enabled. To work around this, initialize a render stream in event-driven mode. Each time the client receives an event for the render stream, it must signal the capture client to run the capture thread that reads the next set of samples from the capture endpoint buffer. In Windows 10 versions 1703 and higher, event-driven loopback clients are supported, and no longer need the workaround involving the render stream.

A client can enable loopback mode only for a shared-mode stream (AUDCLNT_SHAREMODE_SHARED). Exclusive-mode streams cannot operate in loopback mode.

The implementation of loopback by WASAPI depend on the capabilities of the hardware. If the hardware supports a loopback pin on the render endpoint, WASAPI uses the audio provided on this pin for the loopback stream. When the hardware does not support a loopback pin, WASAPI copies the output stream from the audio engine into the loopback application's capture buffer, in addition to copying the audio data to the hardware's render pin.

Some hardware vendors implement loopback devices (as opposed to pin instances on render devices) in their audio adapters. Although hardware loopback devices are similar in operation to the WASAPI loopback mode, they can be more difficult to use.

Hardware loopback devices have the following disadvantages for audio applications:

  • Not all audio adapters have loopback devices. Thus, applications that depend on them will not work on all systems.
  • Before an application can record from a loopback device, the user must identify the loopback device and enable it for use.

Different vendors assign different names to their hardware loopback devices. The following names are examples:

  • Stereo Mix
  • Waveout Mix
  • Mixed Output
  • What You Hear

The lack of standardized names might cause users to have difficulty identifying a loopback device in a list of device names.

A hardware loopback device is a capture device. Thus, if an adapter supports a loopback device, an audio application can record from the device in the same way that it records from any other capture device.

For example, if you select a hardware loopback device to be the default capture device, you can use the RecordAudioStream function (without modification) in the code example in Capturing a Stream to capture the stream from the device. (You can also use a legacy audio API, such as the Windows multimedia waveInXxx functions, to capture the stream from the device.)

If your audio adapter contains a hardware loopback device, you can use the Windows multimedia control panel, Mmsys.cpl, to designate the device as the default capture device. The steps are as follows:

To run Mmsys.cpl, open a Command Prompt window and enter the following command:

Alternatively, you can run Mmsys.cpl by right-clicking the speaker icon in the notification area, which is located on the right side of the taskbar, and selecting Recording Devices.

After the Mmsys.cpl window opens, right-click anywhere in the list of recording devices and verify that the Show Disabled Devices option is checked. (Otherwise, if the loopback device is disabled, it will not appear in the list.)

Browse the list of recording devices to locate the loopback device (if it exists). If the loopback device is disabled, enable it by right-clicking the device and clicking Enable.

Finally, to select the loopback device to be the default capture device, right-click the device and click Set as Default Device.

WASAPI supports loopback recording regardless of whether the audio hardware contains a loopback device, or whether the user has enabled the device.

Windows Vista provides digital rights management (DRM). Content providers rely on DRM to protect their proprietary music or other content from unauthorized copying and other illegal uses. Similarly, a trusted audio driver does not permit a loopback device to capture digital streams that contain protected content. Windows Vista allows only trusted drivers to play protected content. For more information about trusted drivers and DRM, see the Windows DDK documentation.

WASAPI loopback contains the mix of all audio being played, regardless of the Terminal Services session the audio originated from. For example, you can run a loopback client in a service running in session 0 and capture audio from all user sessions, as well as audio being played from session 0.

Remote Desktop allows redirecting audio to the client. This is implemented by creating new audio devices that only appear for that session.

Как создать интерфейс?


Loopback интерфейс иногда нужно создать самостоятельно для улучшения передачи данных.

В частности, это касается получения IP адреса, который априори неизвестен, если IP динамический. Таким образом, функции TCP/IP ядра системы могут работать некорректно.

Дело заключается в том, что им необходимо знать точный IP, что провайдер вам не предоставляет. Соответственно, это нужно сделать самому, даже если IP не настоящий.

И даже если вы не подключены к интернет-провайдеру, необходимость остается. Всё-таки многие сетевые программы не могут выполнять свои функции без IP адреса.

Насчет конфликтов между IP от провайдера и фиктивного для улучшения работы приложений — можете быть спокойны, как ни странно, они спокойно уживаются.

Создать статический IP-адрес не так уж и тяжело. Правда, перед этим от вашего компьютера вам понадобится получить некоторую информацию.

Откройте командную строку и напишите в ней: ipconfig /all. То, что написано напротив IP Address, Subnet Mask, Default Gateway, DNS Servers вам нужно себе отметить.

Это понадобится в непосредственной установке статического IP-адреса.

Далее вам нужно перейти к открытому сетевому подключению.

В Network adapters выберите именно тот, с которого осуществляется подключение к интернету. На нем же кликаете правой кнопкой мыши Свойства.

В окне кликните Internet Protocol (TCP/IP), потом снова выберите Свойства.

Потом переходим к внесению информации той, что вы записали ранее из командной строки. И всё, завершайте процедуру.

Теперь перейдем непосредственно к установке loopback:

  • Скачайте или проверьте, установлен ли, Node.js.
  • Далее с помощью npm (npm2 для Windows).
  • Осуществите команду C:> git config —system core.longpaths true . Она необходима для того, чтобы в командной строке стало можно вводить больше 260 символов. Это ограничение может помешать процессу установки loopback.
  • С помощью командной строки Shell нужно написать C:> npm install -g strongloop.
  • Начнется сама установка.

Могут возникнуть некоторые проблемы, чтобы избежать этого перепроверьте правильно ли установлен Node.js, если есть старые версии этого файла, удалите их.

Кроме того, если не пошла первоначальная команда, можете использовать ее альтернативу:

  • $ npm install -g yo
  • $ npm install -g generator-loopback

Если же простыми решениями проблема не устраняется, лучше обратитесь в техническую поддержку. Однако есть и еще один способ. Правда, на него потребуется несколько больше времени.

Loopback

С помощью функции Loopback можно легко передавать аудио из одного приложения в другое. Loopback может объединять аудио как из источников приложений, так и из устройств аудиовхода, а затем делать его доступным в любом месте вашего Mac. Благодаря простому для понимания проводному интерфейсу Loopback дает вам всю мощь высококлассного студийного микшерного пульта прямо внутри вашего компьютера!

Воспроизведение музыки и многое другое для гостей подкаста
Объедините микрофон с источниками звука, такими как музыка или Farrago, а затем выберите устройство Loopback в качестве источника в Skype. Вуаля! Ваши гости слышат как ваш голос, так и ваши звуковые дополнения.

Нескольких Устройств В Одном
Такие приложения, как GarageBand, Logic и Ableton Live, ограничены записью только с одного аудиоустройства за раз. Благодаря Loopback вы можете объединить несколько устройств ввода в одно виртуальное устройство, чтобы записать весь ваш звук.

Создавать Первоклассные Видеоролики
Большинство экранных рекордеров позволяют включать звук вашего микрофона, а некоторые могут позволить записывать системный звук, но ни один из вариантов не идеален. Вместо этого создайте виртуальное устройство, которое захватывает ваш микрофон и звук приложения, чтобы получить именно тот звук, который вы хотите.

Запись Видео Геймплея
Создание игровых видеороликов с отличным звуком не должно быть сложным. Используйте Loopback с такими устройствами, как Elgato Game Capture hardware, чтобы записывать как ваш микрофон, так и звук игры одновременно!

Хорошо Сочетается с Audio Hijack
Сделайте простое сквозное устройство в Loopback, а затем установите его в качестве выхода на конце любой цепочки захвата звука. Теперь вы можете выбрать этот источник в качестве входного сигнала в любом приложении, чтобы оно получало этот звук.

Гораздо Больше…
Loopback дает вам невероятную мощность и контроль над тем, как аудио маршрутизируется вокруг вашего Mac и между приложениями. Мы не можем дождаться, чтобы услышать о невероятных новых применениях, которые вы найдете для него!

Ошибка

Если произошла ошибка при освобождении интерфейса, решить ее можно самостоятельно.

Сначала перепроверьте, обновлены ли ваши программы, в частности, Node.js, а также другие программы и драйверы. Попробуйте перезагрузить компьютер.

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

Как ни банально, проверьте компьютер на вирусы, а также и сам антивирус. Попробуйте его отключить на некоторое время и посмотрите, как это повлияло на проблему.

Бывали случаи, что такой способ работал.

Кроме того, можно отключить службу Automatic Private IP Addressing (APIPA). Обычно она применяется вместо DHCP и определяет ай-пи в диапазоне 169.254.x.x.

Если же действующих сетевых адаптеров несколько, создайте запись HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersIPAutoconfigurationEnabled со значением 0.

Также можете попробовать почистить сам реестр от сторонних сетевых адаптеров. Будьте осторожны: не удалите те, что вы используете.

После всех манипуляций с компьютером обязательно его перезагрузите.

Принцип работы


Хотя не каждый пользователь знает об этой технологии, она широко распространена. Она есть в каждом современном маршрутизаторе.

Одна из задач технологии обратной петли — перенаправлять исходящий системный пакет на вход системы, не давая ему попасть к OSI. Если попроще, вот так работает данный интерфейс:

Кроме того, интерфейс loopback осуществляет взаимодействие исполняемых на одном хосте процессов с сетевой подсистемой.

Есть и полная схема осуществления loopback интерфейса:

Сфера применения интерфейса обратной петли довольно объемная. Ее используют и в системе pfSense — дистрибутив, создающий межсетевой экран/машрутизатор.

В таком случае loopback нужен в качестве метода взаимодействия между локальными процессами через сетевую подсистему.

В Cisco IOS loopback интерфейс тоже играет не последнюю роль — им осуществляется проверка и настройка работы устройства.

Технология проводит множество процессов, включая алгоритм кратчайшего пути.

Он заключается в том, что при активном loopback интерфейсе маршрутизатор будет всегда использовать доступный IP вместо того, что может быть поврежден.

Встроенное ПО

Loopback, кроме того, имеет некоторые встроенные модели, увеличивающие функционал ПК:

  • Application model — клиентские метаданные;
  • User model — авторизация на сторонних сервисах.
  • Access control models — ACL, AccessToken, Scope, Role и RoleMapping модели для контроля доступа к приложениям, ресурсам и методам.
  • Email model — отправление электронной почты при помощи SMTP или стороннего сервиса.

Loopback интерфейс: Что это и как его использовать?


Loopback — совокупность методов, нужных для корректной работы маршрутизатора и передачи данных.

Сам интерфейс же является отображением логических процессов в маршрутизаторе.

Также саму технологию используют и для других целей:

  • тестирование передачи данных от обслуживающего центра коммутации;
  • проверка сигнала на расстоянии;
  • обеспечение работы коммутационных кабелей и их проверка;
  • тест обратной петли, когда сигнал посылается и возвращается отправителю по всем коммуникационным каналам.

Дополнительные функции


Loopback предоставляет ряд возможностей, увеличивающий функционал вашего компьютера:

  • Push уведомления — всплывающие оповещения.
  • Сервис хранения — интегрируется с другими облачными системами и осуществляет передачу данных между ними. .
  • Авторизация — сайты, поддерживающие OAuth, OAuth 2 или OpenID, могут быть авторизированы через социальные сети и другие популярные сайты.
  • Синхронизация — позволяет мобильным приложениям работать без подключения к сети, но тем не менее обновлять данные, когда пользователь снова онлайн.
  • OAuth 2.0 — Loopback приложения действуют в качестве OAuth 2.0 провайдеров для входа на разные сайты, объединенные API endpoints.

Таким образом, loopback предоставляет одни из самых востребованных функций.

Выводы

Loopback интерфейс — разработка, внедряемая в многие современные программы и приложения. В частности, он нужен для корректной работы маршрутизатора и интернет сети.

Состоит этот интерфейс из многих частей, но главным его модулем, сродни драйверу, можно назвать Node.js.

Установка данного модуля немного затратная по времени. Бывает, что всё проходит хорошо, но даже перед самой инсталляцией немного приходится почеркать в командной строке.

Встречаются и ошибки не только при установке, но и в самой работе.

Решаются они несколько проблематично. Нужно проверять реестр на наличие ненужных сетевых адаптеров или наоборот дописывать вышеуказанные файлы. Порой проще обратиться к специалисту.

Однако рабочая обратная петля всё-таки гарантирует вам лучшее быстродействие и производительность в работе. И это не говоря о том, что он необходим для функционирования интернет сети.

Виртуальный сетевой интерфейс

Loopback технология используется и в стеке протоколов TCP/IP.

Она обеспечивает связь между компьютерами через специальное ПО без применения дополнительного оборудования. В частности, трафик, отправляемый программой, отображается на интерфейсе.

К тому же, для IP тоже используется технология loopback интерфейса. Самый распространенный IP на основе loopback — 127.0.0.1. В IPv4 — 127.0.0.0 до 127.255.255.255. IPv6 же принимает только 0:0:0:0:0:0:0:1.

Нужна такая страничка обычно для коммуникации с серверными приложениями, а также проверки IP в ОС (поскольку не нужно активного сетевого подключения).

loopback sound device

Собственно, задача состоит в записи исходящего в колонки звука. Однако прогугленые срдества оказались немного не тем, что мне нужно:
1) Jack - хорош всем кроме совместимости. Необходимо конкретную программу соединять с jackd (если нет автоконекта), а у многих программ вообще только pulse/alsa
2) Pulseaudio device.monitor - очень хорошая и удобная вещь, но жутко баганая. Иногда звук прерывается, происходит смещение, и пр. Да и вообще, пульс печален
3) alsa snd_aloop - собственно это то, что мне надо. Однако:

У меня 2 звуковые карты.

добавлялся девайс, с которого можно было делать захват, однако он был привязан к HDA Intel

Естественно, я подумал о параметрах:

Абсолютно аналогичная информация на оф. сайте alsa. Ни id ни index не то, что надо, pcm_subsreams вообще хз что.

Функция Node.js

Для полной работоспособности необходим файл Node.js. Однако большинство пользователей встречаются с ним впервые — что же именно настраивает данный компонент?

Модули Node.js вместе составляют фреймворк. Он же обеспечивает взаимодействие через программный интерфейс приложения API.

Локально осуществляется все посредством Node.js, дистанционно через REST. Кроме того, можно и через собственное API для iOS, Android, и HTML5.

Используя API, приложения получают по запросу информацию из баз данных.

Они же могут обмениваться файлами и данными, отправлять электронные письма, получать push оповещения, авторизовываться на разных ресурсах и т. д.

В общем, модули делятся на несколько категорий:

  • модели — нужны для быстродействия технологии;
  • абстракция — отвечает за подключения к нескольким источникам данных;
  • инициализация — настройки программ и их составляющих;
  • последовательность — промежуточный этап между обработкой;
  • данные — подключение реляционной системы управления базами данных noSQL к источникам данных и возвращению абстрактной модели;
  • интеграция — система интеграции через общий проект и интерфейс;
  • сервисы — взаимодействие с предустановленными сервисами;
  • вход — вход программного интерфейса приложения обеспечивается защитными средствами, а также осуществляется поток операций;
  • клиенты — использование встроенных объектов платформы (IOS, Android, AngularJS) совместно с API при помощи REST.

Таким образом, модель работы интерфейса обратной петли довольно сложная, состоит из многих частей.

Для корректного осуществления всех функций нужно определенное программное обеспечение — Node.js. Этот файл является фреймворком интерфейса.

Сетевое оборудование

Данную технологию применяют для управления оборудованием. К примеру, loopback выполняет функцию менеджера определенных пакетов. Это может быть пакет-сигнал тревоги и другие.

Кроме того, этот интерфейс выделяется среди других подходом к пути сигналов.

Программы с loopback осуществляют обмен данными через трафик с помощью адреса. Он, в свою очередь, противопоставляется как виртуальный физическому.

Читайте также: