dsp.AudioPlayer

Проигрывайте аудиоданные с помощью аудио устройства компьютера

Совместимость

Примечание

dsp.AudioPlayer объект будет удален в будущем релизе. Существующие экземпляры объекта продолжают запускаться. Для нового кода используйте audioDeviceWriter объект вместо этого.

Описание

AudioPlayer возразите проигрывает аудиоданные с помощью аудио устройства компьютера.

Проигрывать аудиоданные с помощью аудио устройства компьютера:

  1. Задайте и настройте свой объект аудиоплеера. Смотрите Конструкцию.

  2. Вызовите step проигрывать аудиоданные согласно свойствам dsp.AudioPlayer. Поведение step характерно для каждого объекта в тулбоксе.

Эта Система object™ буферизует данные из аудио устройства с помощью процесса, проиллюстрированного следующей фигурой.

Примечание

Запуск в R2016b, вместо того, чтобы использовать step метод, чтобы выполнить операцию, заданную Системным объектом, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполните эквивалентные операции.

Конструкция

H = dsp.AudioPlayer возвращает объект аудиоплеера, H, это проигрывает аудиосэмплы с помощью устройства аудиовыхода в режиме реального времени.

H = dsp.AudioPlayer('PropertyName',PropertyValue, ...) возвращает объект аудиоплеера, H, с каждым набором свойств к заданному значению.

H = dsp.AudioPlayer(SAMPLERATE,'PropertyName',PropertyValue, ...) возвращает объект аудиоплеера, H, с SampleRate набор свойств к SAMPLERATE и другой заданный набор свойств к заданным значениям. Этот Системный объект поддерживает вход переменного размера. Если вы используете сигналы переменного размера с этим Системным объектом, можно испытать звуковых уволенных, когда размер входного кадра увеличивается. Чтобы избежать этого поведения, используйте сигнал максимального ожидаемого размера, когда вы сначала вызовете step начинать пробегать этот Системный объект.

Свойства

DeviceName

Устройство, в которое можно отправить аудиоданные

Задайте устройство, в которое можно отправить аудиоданные. Значением по умолчанию является Default, который является устройством стандартного вывода компьютера. Можно использовать заполнение клавишей Tab, чтобы запросить допустимый DeviceName присвоения для вашего компьютера путем ввода H.DeviceName = ' и затем нажатие клавиши TAB.

SampleRate

Количество выборок в секунду отправляется в аудио устройство

Задайте количество выборок в секунду в сигнале как целое число. Значением по умолчанию является 44100. Это свойство является настраиваемым.

DeviceDataType

Тип данных используется устройством

Задайте тип данных, используемый аудио устройством, чтобы получить аудиоданные как Determine from input data type , 8-bit integer, 16-bit integer, 24-bit integer, или 32-bit float. Значением по умолчанию является Determine from input data type.

BufferSizeSource

Источник Buffer Size

Задайте, как определить buffer size как Auto или Property. Значением по умолчанию является Auto. Когда это свойство установлено в Auto, соответствующий buffer size на основе SampleRate вычисляется.

BufferSize

Buffer size

Задайте размер буфера, который аудиоплеер возражает использованию, чтобы передать с аудио устройством как целое число. BufferSize половина размера буфера звуковой карты. Кадр данных не может быть передан очереди, пока устройство не опорожняет буфер, который вводит latency. Задержка является временем, это берет устройство, чтобы опорожнить очередь и буфер. BufferSize должно быть меньшим, чем эффективная длительность очереди. Это свойство является настраиваемым. Настройка этого свойства включает баланс между задержкой устройства и возможностью понижающихся данных (недостаточное наполнение буфера).

Это свойство применяется, когда вы устанавливаете BufferSizeSource свойство к Property. Значением по умолчанию является 4096. Установить BufferSize к значению кроме значения по умолчанию сначала измените BufferSizeSource к 'Property'. Можно выбрать BufferSize в списке свойств.

QueueDuration

Размер очереди в секундах

Задайте длину аудио-очереди в секундах. Значением по умолчанию является 1.0. Это свойство является настраиваемым. Цель очереди состоит в том, чтобы управлять компромиссом между уволенным данных и задержкой. Задержка вычисляется следующим уравнением: latency=QueueDuration×SampleRate+2×BufferSizeSampleRate.

Чтобы минимизировать задержку, понизьте QueueDuration или набор это к 0. Однако имейте в виду, что уволенные данных или потеря системной робастности могут закончиться. QueueDuration свойство задает длительность сигнала в секундах, которые могут быть буферизованы во время симуляции. Это значение является максимальным отрезком времени, что предоставление данных Системного объекта может изолировать требование данных устройства. Если уровень пропускной способности MATLAB® ниже, чем уровень пропускной способности устройства, недостаточное наполнение буфера происходит. Можно использовать OutputNumUnderrunSamples контролировать недогрузку. Чтобы откорректировать недогрузку, сделайте длительность очереди больше, чем буфер. Если уровень пропускной способности MATLAB выше, чем уровень пропускной способности устройства, переполнение буфера происходит, заставляя Системный объект ожидать прежде, чем записать данные очереди. Чтобы свести к минимуму вероятность уволенных, проверки Системного объекта, чтобы проверить длительность очереди являются, по крайней мере, столь же большими как максимум buffer size и формата кадра. Если это не, длительность очереди автоматически установлена в это максимальное значение. В начале симуляции очередь переполнена тишиной. На каждом временном шаге Системный объект отправляет буфер выборок от верхней части очереди к аудио устройству. Если очередь не содержит достаточно данных, чтобы полностью заполнить буфер, Системный объект заполняет остающийся фрагмент буфера с нулями.

OutputNumUnderrunSamples

Включите выход количества недогрузки

Установите на true выводить количество нулевых выборок, вставленных из-за недогрузки очереди начиная с последней возможности к step метод. Значением по умолчанию является false.

ChannelMappingSource

Источник отображения канала устройства

Задайте, определить ли канал, сопоставляющий как 'Auto' или как 'Property'. Если вы устанавливаете значение ChannelMappingSource к 'Auto', ChannelMapping поле представляется неактивное. Если вы устанавливаете это свойство на 'Property', вектор задан в ChannelMapping поле используется, чтобы направить выход.

ChannelMapping

Отображение канала данных к устройству

Вектор допустимых индексов канала, чтобы представлять отображение между данными и устройством выходные каналы. Термин Channel Mapping относится к 1 к 1 отображению, которое сопоставляет каналы на выбранном аудио устройстве к каналам данных. Когда вы проигрываете аудио, отображение канала позволяет вам задавать который канал аудиоданных вывести определенный канал аудиоданных. По умолчанию, ChannelMapping поле [1:MAXOUTPUTCHANNELS], где MAXOUTPUTCHANNELS зависит от выбранного устройства.

Методы

шагЗапишите аудио в устройство аудиовыхода
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

Примеры

развернуть все

Примечание: Если вы используете R2016a или более ранний релиз, заменяете каждый вызов объекта с эквивалентным step синтаксис. Например, obj(x) становится step(obj,x).

Примечание: dsp.AudioFileReader и audioDeviceWriter Системные объекты не поддержаны в MATLAB Online.

Читайте в звуковом файле AVI и проигрывайте файл назад с помощью стандартного устройства аудиовыхода.

AFR = dsp.AudioFileReader; % points to a default audio file
AP = audioDeviceWriter('SampleRate',AFR.SampleRate);
while ~isDone(AFR)
  audio = AFR();
  nUnderrun = AP(audio);
  if nUnderrun > 0
    fprintf('Audio player queue underrun by %d samples.\n'...
	     ,nUnderrun);
  end
end
release(AFR);            % close the input file
release(AP);             % close the audio output device

Поиск и устранение проблем

Выполнение исполняемого файла вне MATLAB

Чтобы запустить ваше сгенерированное приложение независимого исполняемого файла в Shell, необходимо установить среду на следующее:

ПлатформаКоманда
Mac

setenv DYLD_LIBRARY_PATH $LD_LIBRARY_PATH: $MATLABROOT/bin/maci64 (csh/tcsh)

export DYLD_LIBRARY_PATH $LD_LIBRARY_PATH: $MATLABROOT/bin/maci64 (Bash)

Linux

setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH: $MATLABROOT/bin/glnxa64 (csh/tcsh)

export LD_LIBRARY_PATH $LD_LIBRARY_PATH: $MATLABROOT/bin/glnxa64 (Bash)

Windows

set PATH = $MATLABROOT\bin\win64;%PATH%

Алгоритмы

Этот объект реализует алгоритм, входные параметры и выходные параметры, описанные на странице с описанием блока To Audio Device. Свойства объектов соответствуют параметрам блоков.

Представленный в R2012a

Для просмотра документации необходимо авторизоваться на сайте