Dahua NetSDK Ошибка 15: NET_TALK_INIT_ERROR — Инициализация двусторонней связи
Сбои при попытке установить интерком-связь с вызывной панелью VTO или камерой:
- Функция
CLIENT_StartTalkExвозвращает0(ошибка), а код ошибки равен15. - Звук с клиентского ПК не передается на динамик камеры или домофона.
- В системном журнале фиксируется ошибка инициализации аудиоадаптера или драйвера захвата звука.
- Несовпадение параметров аудио-формата между NetSDK и прошивкой VTO/IPC.
Ошибка NET_TALK_INIT_ERROR (15) свидетельствует о неудачной попытке инициализировать аудиокодек, устройство захвата звука (микрофон) или локальный стек аудиотрансляции.
1. Корректная установка формата передачи аудио
Перед стартом аудиосвязи обязательно запросите у устройства поддерживаемый аудиокодек и передайте его в NetSDK:
// 1. Установка режима кодирования звука на клиенте
NET_AUDIO_FORMAT_EX stAudioFmt = { sizeof(stAudioFmt) };
stAudioFmt.nAudioType = 0; // 0: G.711A, 1: PCM, 2: G.711U, 3: AAC
stAudioFmt.nBitsPerSample = 16;
stAudioFmt.nSamplesPerSec = 8000;
CLIENT_SetDeviceMode(lLoginID, DH_TALK_ENCODE_TYPE, &stAudioFmt);
// 2. Старт голосового интеркома
LLONG hTalkHandle = CLIENT_StartTalkEx(lLoginID, AudioTalkCallBack, (LDWORD)this);
if (hTalkHandle == 0) {
DWORD err = CLIENT_GetLastError(); // Код 15
}2. Проверка прав доступа к аудиоустройствам
- В современных версиях Windows (10/11) и Linux проверьте политики конфиденциальности микрофона (Microphone Privacy Settings). Если доступ процессу к микрофону заблокирован ОС, SDK вернет ошибку 15.
- Убедитесь, что в системе присутствует физическое или виртуальное устройство захвата аудио (Default Audio Capture Device).
3. Проверка канала интеркома на устройстве
Если вызывная панель (VTO) или IP-камера уже ведут сеанс двусторонней связи с другим оператором/монитором VTH, канал занят. NetSDK вернет ошибку инициализации.
Частые вопросы (FAQ)
Какие аудиокодеки поддерживаются для интеркома Dahua?
Наиболее стабильными и универсальными являются G.711A (PCMA), G.711U (PCMU), PCM (16 бит, 8000 Гц) и AAC (для ряда новых прошивок IP-камер).
Почему CLIENT_StartTalkEx падает с ошибкой 15 на серверах без звуковой карты?
NetSDK пытается инициализировать локальный драйвер захвата DirectSound/ALSA. На серверах без физического аудиоинтерфейса необходимо использовать виртуальный аудиодрайвер или кастомную передачу сырых буферов.
Может ли брандмауэр блокировать инициализацию Talk-сессии?
Да, если закрыты порты передачи аудиоданных (по умолчанию TCP/UDP порт 37777 или RTP-порты интеркома).
Нужно ли вызывать CLIENT_RecordStart перед началом разговора?
Только в том случае, если требуется локальная запись разговора в WAV/PCM файл. Для простой передачи голоса достаточно CLIENT_StartTalkEx.