マイク、スピーカー(オーディオ)関連の SDK 使用方法

・ 目次
NET_DVR_STDXMLConfig 関数
NET_DVR_XML_CONFIG_INPUT の構造
NET_DVR_XML_CONFIG_OUTPUT の構造
JSON_AudioAlarm:JSON 形式の AudioAlarm メッセージの形式
JSON_AudioAlarmCap:音声警告構成機能に関する JSON メッセージの形式
双方向オーディオ(Two-Way Audio) API
オーディオ関連API、メッセージ、Request URI


NET_DVR_STDXMLConfig 関数

リクエスト URL を XML または、JSON 形式で送信し、結果を受信します。
BOOL NET_DVR_STDXMLConfig(
LONG                              lUserID,
const NET_DVR_XML_CONFIG_INPUT     *lplnputParam,
NET_DVR_XML_CONFIG_OUTPUT           *lpOutputParam
);


NET_DVR_XML_CONFIG_INPUT の構造

メッセージ送信API(NET_DVR_STDXMLConfig)の入力パラメータの構造

メンバー名 説明
dwSize DWORD 構造体のサイズ
lpRequestUrl void* 各種機能を実装するためのリクエスト URL(コマンド)を文字列形式で指定する
dwRequestUrlLen DWORD リクエスト URL のサイズ
lplnBuffer void* 入力パラメータ(リクエストメッセージ)を保存するためのバッファ
NET_DVR_MIME_UNIT の入力コンテンツの詳細構造を参照してください
dwlnBufferSize DWORD 入力バッファのサイズ
dwRecvTimeOut DWORD 受信タイムアウト、単位:ミリ秒、0 ~ 5000 ミリ秒 (デフォルト)
byForceEncrpt BYTE 強制暗号化を有効にするかどうか (メッセージは送信時に AES アルゴリズムによって暗号化されます):0 – いいえ、1 – はい
byNumOfMultiPart BYTE メッセージセグメントの数:0 – 無効
その他の値 – 構造体 NET_DVR_MIME_UNIT のパラメータ lplnBuffer によって送信されるメッセージセグメントの数
byRes Array of BYTE 予約済み、0 に設定します


NET_DVR_XML_CONFIG_OUTPUT の構造

メッセージ送信API(NET_DVR_STDXMLConfig)の出力パラメータの構造

メンバー名 説明
dwSize DWORD 構造体のサイズ
lpOutBuffer void* 出力パラメータ(応答メッセージ)を保存するためのバッファ
GET メゾットで URL を渡すときに割り当てられます
dwOutBufferSize DWORD 出力バッファのサイズ
dwReturnedXMLSize DWORD 応答メッセージの実際のサイズ
lpstatusBuffer void* 応答ステータス(ResponseStatus メッセージ)
GET オペレーションの実行が成功した場合、このパラメータは割り当てられません
必要ない場合は、「NULL」に設定することもできます
dwStatusSize DWORD 応答ステータスバッファのサイズ
lpDataBuffer HPR_VOIDPTR 送信データ用のバッファ
このパラメータは、byNumOfMultiPart の値が 0 より大きい場合に有効です
byNumOfMultiPart HPR_UINT8 メッセージが分割される部分の数
byRes[23] BYTE 予約済み、0 に設定します


JSON_AudioAlarm:JSON 形式の AudioAlarm メッセージの形式

変数名 説明
audioID オーディオ ID:アラーム音の種類
1:サイレン
2:「警告、ここは立ち入り禁止エリアです」
3:「警告、ここは立ち入り禁止エリアです、近づかないでください」
4:「警告、ここは駐車禁止ゾーンです」
5:「警告、ここは駐車禁止ゾーンです、近づかないでください」
6:「注意してください、このエリアは監視下にあります」
7:「ようこそ、このエリアは監視下にありますのでご注意ください」
8:「ようこそ」
9:「危険です、離れてください」
10:サイレン + 「危険です、離れてください」
11:音声警告
12:ビープ音
13:カスタム アラーム音1
14:カスタム アラーム音2
15:カスタム アラーム音3
audioVolume オーディオボリューム
1 から 100 まで
alarmTimes アラームの回数
1 から 100 まで
TimeRangeList 時間範囲リスト
week 曜日
TimeRange 時間範囲
id 時間範囲の ID
beginTime 開始時間
endTime 終了時間
audioClass 読み取り専用
文字列:サウンドタイプ
“alertAudio”:アラームサウンド
“promptAudio”:プロンプトサウンド
“customAudio”:カスタムサウンド
alertAudioID 読み取り専用、アラーム音 ID、このノードは audioClass が alertAudio の場合にのみ有効です
1:サイレン
2:「警告、ここは立ち入り禁止エリアです」
3:「警告、ここは制限エリアです、制限区域です、近づかないでください」
4:「警告、ここは駐車禁止区域です」
5:「警告、ここは駐車禁止区域です、近づかないでください」
6:「注意してください、この区域は監視下にあります」
7:「ようこそ、このエリアは監視下にありますのでご注意ください」
8:「ようこそ」
9:「危険です、近づかないでください」
10:サイレン + 「危険です、近づかないでください」
11:音声警告
customAudioID 読み取り専用、カスタム サウンド ID
audioClass が「customAudio」の場合、このノードが返されます
アラーム音ファイルは、指定された形式で Guarding Vision 経由でのみアップロードできます
このノードに値が返されない場合、カスタムサウンド(customAudio)も返されません
alarmType オプション
文字列:アラームタイプ
“behavior”:行動分析
“thermometry”:温度測定
“dynamicFire”:火災検知
“smokingMode”:煙検知
“noMaskDetection”:マスク非着用検知
“AIOP”:AI オープンプラットフォームイベント
“PQA”:人数例外(人数密度検出のサブタイプ)
AlarmType は、audioID にリンクされている必要があります


JSON_AudioAlarmCap:音声警告構成機能に関する JSON メッセージの形式 

変数名 説明
audioTypeListCap オーディオ ID:アラーム音の種類
1:サイレン
2:「警告、ここは立ち入り禁止エリアです」
3:「警告、ここは立ち入り禁止エリアです、近づかないでください」
4:「警告、ここは駐車禁止ゾーンです」
5:「警告、ここは駐車禁止ゾーンです、近づかないでください」
6:「注意してください、このエリアは監視下にあります」
7:「ようこそ、このエリアは監視下にありますのでご注意ください」
8:「ようこそ」
9:「危険です、離れてください」
10:サイレン + 「危険です、離れてください」
11:音声警告
12:ビープ音
13:カスタム アラーム音1
14:カスタム アラーム音2
15:カスタム アラーム音3
16:AI カスタムオーディオファイル
[0] audioID 1
audioDescription “siren”
[1] audioID 2
audioDescription “Warning, this is a restricted area”
[2] audioID 3
audioDescription “Waring, this is a restricted area, please keep away”
audioVolume オーディオボリューム
1 から 100 まで、デフォルトは 100
alarmTimes アラームの回数
1 から 50 まで、デフォルトは 5
TimeRangeCap 音声警告スケジュール機能
week 1:Monday
2:Tuesday
3:Wednesday
4:Thursday
5:Friday
6:Saturday
7:Sunday
id その日の時間帯の ID
beginTime “00:00” ~ “24:00”
endTime “00:00” ~ “24:00”
audioClass 読み取り専用
文字列:サウンドタイプ
“alertAudio”:アラームサウンド (サポートされているアラームサウンドタイプを AlertAudioTypeListCap ノードから取得します)
“promptAudio”:プロンプトサウンド
“customAudio”:カスタムサウンド (customAudioID に従って構成します、このノードが返されない場合は、audioTypeListCap ノードからサポートされているサウンドタイプを取得する必要があります)
customAudioID 1 から 3 まで、デフォルトは 1
読み取り専用、カスタムサウンド ID
このノードは、audioClass が「customAudio」の場合に返されます
アラーム音ファイルは、指定された形式で Guarding Vision 経由でのみアップロードできます
このノードに値が返されない場合、カスタムサウンド(customAudio)も返されません
AlertAudioTypeListCap
[0] alertAudioID 1
alertAudioDescription “Siren”
[1] alertAudioID 2
alertAudioDescription “Warning, this is a restricted area”
[2] alertAudioID 3
alertAudioDescription “Warning, this is a restricted area, please keep away”
alarmType behavior,thermometry,dynamicFire,smokingMode,noMaskDetection,AIOP,PQA、デフォルト:thermometry
behavior:行動分析
thermometry:温度測定
dynamicFire:火災検知
smokingMode:煙検知
noMaskDetection:マスク非着用検知
AIOP:AI オープンプラットフォームイベント
PQA:人数例外 (人数密度検出のサブタイプ)
AlarmBindAudioList
alarmType アラームの種類
behavior:行動分析
thermometry:温度測定
dynamicFire:火災検知
smokingMode:煙検知
noMaskDetection:マスク非着用検知
AIOP:AI オープンプラットフォームイベント
PQA:人数例外 (人数密度検出のサブタイプ)
audioID 警報タイプに対応する音響警報タイプ ID
行動分析は 1 ~ 12 に対応
温度測定は 13 に対応
火災検知は 14 に対応
煙検知は 15 に対応
isSupportCustomAudio true
isSupportAudioTest true
customAudioName カスタムサウンドファイルの名前、最大サイズは 24 バイトです
isSupportCustomAudioFormatinfo true
isSupportCustomAudioURL true
isSupportCustomAudioFiles true


双方向オーディオ(Two-Way Audio) API

関数名 説明
NET_DVR_AddDVR_V30 PC からの音声を受信するためにデバイスの音声チャンネルをブロードキャストグループに追加します
NET_DVR_ClientAudioStart_V30 音声ブロードキャスト用に PC から音声を収集できるようにします
NET_DVR_ClientAudioStop 音声ブロードキャストのために PC から音声を収集するのを停止します
NET_DelDVR_V30 デバイスのオーディオチャネルをブロードキャストグループから削除します
NET_DVR_GetCurrentAudioCompress_V50 双方向オーディオの効果的なオーディオエンコーディングパラメータを取得します
NET_DVR_EncodeMP3Frame MP3 音声データをエンコードします
NET_DVR_DecodeMP3Frame MP3 音声データをデコードします
NET_DVR_InitG711Encoder G.711 オーディオエンコーディング用のリソースを初期化します
この API は Linux オペレーティングシステムでのみ使用できます
NET_DVR_EncodeG711Frame G.711 モードでオーディオをエンコードします
NET_DVR_ReleaseG711Encoder G.711 オーディオエンコーディングのリソースをリリースします
この API は Linux オペレーティングシステムでのみ使用できます
NET_DVR_InitG711Decoder G.711 エンコード用のオーディオデータをデコードするためのリソースを初期化します
この API は Linux オペレーティングシステムでのみ使用できます
NET_DVR_DecodeG711Frame 音声を G711 形式にデコードします
NET_DVR_ReleaseG711Decoder オーディオデコード(G.711 エンコード用)のリソースを解放します
この API は Linux オペレーティングシステムでのみ使用できます
NET_DVR_InitG722Encoder G.722 オーディオエンコーディング用のリソースを初期化します
NET_DVR_EncodeG722Frame G.722 モードでオーディオをエンコードします
NET_DVR_ReleaseG722Encoder G.722 オーディオエンコーディングのリソースをリリースします
この API は Windows と Linux の両方のオペレーティングシステムで利用できます
NET_DVR_InitG722Decoder G.722 エンコード用のオーディオデータをデコードするためのリソースを初期化します
NET_DVR_DecodeG722Frame オーディオを G722 形式にデコードします
NET_DVR_ReleaseG722Decoder オーディオデコード(G.722 エンコード用)のリソースを解放します
この API は Windows と Linux の両方のオペレーティングシステムで利用できます
NET_DVR_InitG726Encoder G.726 オーディオエンコーディング用のリソースを初期化します
この API は Windows と Linux の両方のオペレーティングシステムで利用できます
NET_DVR_EncodeG726Frame G.726 モードでオーディオをエンコードします
この API は Windows と Linux の両方のオペレーティングシステムで利用できます
NET_DVR_ReleaseG726Encoder G.726 オーディオエンコーディングのリソースをリリースします
この API は Windows と Linux の両方のオペレーティングシステムで利用できます
NET_DVR_InitG726Decoder G.726 エンコード用のオーディオデータをデコードするためのリソースを初期化します
この API は Windows と Linux の両方のオペレーティングシステムで利用できます
NET_DVR_DecodeG726Frame オーディオを G726 形式にデコードします
この API は Windows と Linux の両方のオペレーティングシステムで利用できます
NET_DVR_ReleaseG726Decoder オーディオデコード(G.726 エンコード用)のリソースを解放します
この API は Windows と Linux の両方のオペレーティングシステムで利用できます
NET_DVR_SetVoiceDateCallBack 音声データを収集するためのコールバック関数を設定します
NET_DVR_StartVoiceCom_MR_V30 音声転送機能を有効にして、エンコードされた音声データを取得します
NET_DVR_StartVoiceCom_V30 双方向オーディオ機能を有効にします
NET_DVR_StopVoiceCom 双方向音声または音声の転送を停止します
NET_DVR_VoiceComSendData 音声データを転送します


オーディオ関連API、メッセージ、Request URI

種別 名称 説明
XML 形式メッセージ XML_TwoWayAudioChannelList XML 形式の双方向オーディオチャネルリストメッセージ
XML_TwoWayAudioChannel XML 形式の双方向オーディオチャネルメッセージ
XML_Cap_AudioVideoCompressInfo XML 形式の AudioVideoCompressInfo 機能メッセージ
Request URI /ISAPI/System/TwoWayAudio/channels 全ての双方向オーディオチャネルのオーディオパラメータを取得します
JSON 形式のメッセージ JSON_AudioAlarm JSON 形式の AudioAlarm メッセージ
JSON_AudioAlarmCap 音声警告構成機能に関する JSON メッセージ
API NET_DVR_COMPRESSION_AUDIO
NET_DVR_GetCurrentAudioCompress_V50 双方向オーディオの効果的なオーディオエンコーディングパラメータを取得します
NET_DVR_STDXMLConfig リクエスト URL を XML または JSON 形式で送信し、いくつかの一般的な機能を実装します

関連記事