Поделиться через


Метод IAudioCaptureClient::GetNextPacketSize (audioclient.h)

Метод GetNextPacketSize извлекает количество кадров в следующем пакете данных в буфере конечной точки записи.

Синтаксис

HRESULT GetNextPacketSize(
  [out] UINT32 *pNumFramesInNextPacket
);

Параметры

[out] pNumFramesInNextPacket

Указатель на переменную UINT32 , в которую метод записывает число кадров (количество звуковых кадров в следующем пакете записи).

Возвращаемое значение

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

Код возврата Description
AUDCLNT_E_DEVICE_INVALIDATED
Устройство конечной точки звука было отключено, или звуковое оборудование или связанные аппаратные ресурсы были перенастроены, отключены, удалены или недоступны для использования.
AUDCLNT_E_RESOURCES_INVALIDATED
Ресурсы потока были недействительны. Эта ошибка может возникать по следующим причинам:
— поток приостановлен.
— Поток эксклюзивной или разгрузки отключен.
— Упаковаемое приложение с монопольным режимом или потоком разгрузки.
— Поток "защищенных выходных данных" закрыт.
AUDCLNT_E_SERVICE_NOT_RUNNING
Звуковая служба Windows не запущена.
E_POINTER
Параметр pNumFramesInNextPacket имеет значение NULL.

Замечания

Используйте этот метод только с потоками общего режима. Он не работает с потоками в монопольном режиме.

Перед вызовом метода IAudioCaptureClient::GetBuffer для получения следующего пакета данных клиент может вызвать GetNextPacketSize , чтобы получить количество звуковых кадров в следующем пакете. Счетчик, сообщаемый GetNextPacketSize , соответствует количеству, полученному в вызове GetBuffer (через выходной параметр pNumFramesToRead ), который следует вызову GetNextPacketSize .

Пакет всегда состоит из целого числа аудиокадров.

Метод GetNextPacketSize должен вызываться в том же потоке, что и метод GetBuffer и IAudioCaptureClient::ReleaseBuffer , который получает и освобождает пакеты в буфере конечной точки записи.

Пример кода, использующий метод GetNextPacketSize , см. в разделе "Запись потока".

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows Vista [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2008 [классические приложения | Приложения UWP]
целевая платформа Windows
Header audioclient.h

См. также

Интерфейс IAudioCaptureClient

IAudioCaptureClient::GetBuffer

IAudioCaptureClient::ReleaseBuffer

IAudioClient::GetCurrentPadding