<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Windows下音視頻對講演示程序(聲學回音消除、噪音抑制、語音活動檢測、自動增益控制、自適應抖動緩沖)(2025年06月28日更新)

      Windows下音視頻對講演示程序

      必讀說明

      簡介

      ??本軟件根據《道德經》為核心思想而設計,實現了兩至多個設備之間進行音視頻對講,實現了一個設備對多個設備進行廣播對講,一般可用于樓宇對講、智能門鈴對講、企業員工對講、智能對講機、視頻會議、以及類似于微信QQ這種需要兩至多人進行音視頻對講的場景。本軟件支持以下增強處理:
      ??* 支持同時與多個設備建立連接,并同時與多個設備進行音視頻對講。
      ??* 支持IPv4和IPv6的TCP和UDP協議傳輸,UDP協議支持可靠傳輸、支持連接中途更換IP不中斷。
      ??* 支持實時半雙工(一鍵通)和實時全雙工的音頻或視頻或音視頻對講。
      ??* 支持8000Hz、16000Hz、32000Hz、48000Hz的音頻。
      ??* 支持聲學回音消除,通過本人自己設計的音頻輸入輸出幀同步方法、自適應設置回音延遲方法、三重聲學回音消除器,聲學回音可以消除到99%以上,還可以消除同一房間回音,且收斂時間很短,無論網絡如何抖動都可以消除。
      ??* 支持噪音抑制,對常見的底噪音、嘈雜的街道音、風吹音、等都有抑制效果。
      ??* 支持語音活動檢測,只有在人說話時才發送網絡數據,無人說話時不產生網絡數據,從而降低噪音、降低網絡流量。
      ??* 支持自動增益控制,當人說話聲音較小時會自動增大音量,當人說話聲音較大時會自動減小音量。
      ??* 支持音頻編解碼,對音頻數據的壓縮率在1~20%之間,且支持動態比特率,從而大幅度降低網絡流量,聲音依然清晰,還支持數據包丟失隱藏,當網絡丟包率高達30%時,仍然可以進行對講。
      ??* 支持保存音頻到文件和繪制音頻波形到窗口,可以直觀且方便的調試音頻。
      ??* 支持視頻軟編解碼,支持指定比特率,最低到10KB/s仍然可以進行視頻對講。
      ??* 支持音視頻自適應抖動緩沖,當網絡存在丟包、亂序、延時等抖動情況時,通過自適應調節緩沖深度來應對這些抖動。
      ??* 支持自定義調節各種功能的參數來適應不同的設備,絕大部分情況下使用默認設置即可。
      ??* 支持將對講時全部設備的音視頻輸入輸出保存到一個Avi文件。
      ??* 支持與Android下音視頻對講演示程序進行音視頻對講。

      ??聲學回音消除器效果對比:

      名稱 收斂時間 回音延遲不穩定 殘余回音 遠近端同時說話 同一房間對講 運算量
      Speex聲學回音消除器 有語音活動1~3秒 0~3秒自適應調節 回音延遲穩定時1%
      回音延遲不穩定時50%
      近端語音被消除20% 會產生一定回音 一般
      WebRtc定點版聲學回音消除器 0秒 延遲400ms以內0秒自適應調節
      延后超過400ms將無法消除
      回音延遲穩定時1%
      回音延遲不穩定時1%
      近端語音被消除99% 會產生較大回音 一般
      WebRtc浮點版聲學回音消除器 有語音活動1秒 0秒自適應調節 回音延遲穩定時1%
      回音延遲不穩定時5%
      近端語音被消除50% 會產生較小回音 較大
      WebRtc第三版聲學回音消除器 有語音活動1秒 0秒自適應調節 回音延遲穩定時5%
      回音延遲不穩定時10%
      近端語音被消除30% 會產生較小回音 很大
      Speex聲學回音消除器
      +WebRtc定點版聲學回音消除器
      0秒 0~3秒自適應調節 回音延遲穩定時1%
      回音延遲不穩定時50%
      近端語音被消除20% 會產生一定回音 一般
      WebRtc定點版聲學回音消除器
      +WebRtc浮點版聲學回音消除器
      0秒 0秒自適應調節 回音延遲穩定時1%
      回音延遲不穩定時5%
      近端語音被消除50% 會產生較小回音 較大
      Speex聲學回音消除器
      +WebRtc定點版聲學回音消除器
      +WebRtc浮點版聲學回音消除器
      0秒 0秒自適應調節 回音延遲穩定時1%
      回音延遲不穩定時1%~5%
      近端語音被消除50% 會產生很小回音 很大
      WebRtc定點版聲學回音消除器
      +WebRtc第三版聲學回音消除器
      0秒 0秒自適應調節 回音延遲穩定時1%
      回音延遲不穩定時10%
      近端語音被消除30% 會產生較小回音 很大
      Speex聲學回音消除器
      +WebRtc定點版聲學回音消除器
      +WebRtc第三版聲學回音消除器
      0秒 0秒自適應調節 回音延遲穩定時1%
      回音延遲不穩定時1%~10%
      近端語音被消除30% 會產生很小回音 巨大

      ??特別注意:以上是在不使用系統自帶的聲學回音消除器的效果,且不同設備或不同環境或不同時間效果都會不同,所以需要自己親自測試。

      準備

      ??準備兩至多個安裝了Windows 7及以上系統的設備(已適配到Windows 11),設備之間可以相互通信(可以用Ping工具測試,建議設備都在同一局域網內,外網設備訪問內網設備可能需要做內網穿透),所有設備都安裝相同版本的本軟件。

      開始

      ??1、在一個設備上直接點擊服務端的創建按鈕。
      ??2、在全部需要參與對講的設備上將客戶端的IP地址改為服務端設備的IP地址,并點擊添加按鈕。
      ??3、在客戶端列表里點擊剛剛添加的IP地址,再點擊連接按鈕,即可與連接上該服務端的全部設備進行對講。
      ??4、如果服務端所在設備也需要參與對講,則也需要進行添加和連接操作。

      ??一鍵即按即廣播按鈕:批量連接客戶端列表里全部服務端,并廣播音視頻輸入到全部服務端,連接到這些服務端的客戶端都能聽見看見該音視頻。

      ??設置按鈕:提供了各項功能的參數設置,大部分情況下都不需要修改,如果發現不適合某些設備,則需要根據設備情況修改。
      ??保存設置按鈕:將各項功能的參數保存到Stng.xml中,每次運行本軟件時會自動讀取設置。
      ??讀取設置按鈕:將Stng.xml中各項功能的參數讀取到本軟件中。
      ??刪除設置按鈕:將Stng.xml文件刪除。
      ??重置設置按鈕:將本軟件的設置重置為默認。

      ??特別注意:如果把兩至多個設備放在同一房間里測試,有可能會出現嘯叫、聲音不完整、等問題,這是因為現在的麥克風都很靈敏了,一點小小的聲音都會被錄進去,設備之間會相互錄音,導致軟件無法正確識別回音,所以建議放在不同的房間里測試。如果實在要測試這種情況,就在設置里,Speex預處理器的設置里,關閉“使用自動增益控制”后再測試。

      移植

      ??如果需要在自己的軟件中使用本軟件的音視頻功能,需要以下幾個步驟:
      ??C語言:
      ??1、將qedit.h、AdoInpt.h、AdoInpt.cpp、AdoOtpt.h、AdoOtpt.cpp、VdoInpt.h、VdoInpt.cpp、VdoOtpt.h、VdoOtpt.cpp、TkbkClnt.h、TkbkClnt.cpp、BdctClnt.h、BdctClnt.cpp、MediaPocsThrd.h、MediaPocsThrd.cpp、SrvrThrd.h、SrvrThrd.cpp、ClntMediaPocsThrd.h、ClntMediaPocsThrd.cpp和各個庫文件夾復制到自己的軟件中。
      ??2、如果自己的軟件已有傳輸協議:實現MediaPocsThrd結構體的UserInit、UserDstoy、UserPocs、UserMsg、UserDvcChg、UserReadAdoVdoInptFrm、UserWriteAdoOtptFrm、UserGetAdoOtptFrm、UserWriteVdoOtptFrm、UserGetVdoOtptFrm這些回調函數。
      ????如果自己的軟件沒有傳輸協議:實現SrvrThrd結構體的UserInit、UserDstoy、UserPocs、UserMsg、UserShowLog、UserShowToast、UserSrvrInit、UserSrvrDstoy、UserCnctInit、UserCnctDstoy、UserCnctSts、UserCnctRmtTkbkMode、UserCnctTstNtwkDly這些回調函數。
      ??????????????????實現ClntMediaPocsThrd結構體的UserInit、UserDstoy、UserPocs、UserMsg、UserDvcChg、UserShowLog、UserShowToast、UserTkbkClntCnctInit、UserTkbkClntCnctDstoy、UserTkbkClntCnctSts、UserTkbkClntMyTkbkIdx、UserTkbkClntLclTkbkMode、UserTkbkClntTkbkInfoInit、UserTkbkClntTkbkInfoDstoy、UserTkbkClntTkbkInfoRmtTkbkMode、UserTkbkClntTstNtwkDly、UserBdctClntInit、UserBdctClntDstoy、UserBdctClntCnctInit、UserBdctClntCnctDstoy、UserBdctClntCnctSts這些回調函數。
      ??3、調用Init()函數初始化結構體變量,然后調用結構體的相關設置函數,最后調用MediaPocsThrdStart()函數啟動該線程即可。
      ??4、當需要線程退出時,調用MediaPocsThrdRqirExit()和MediaPocsThrdDstoy()函數即可。
      ??C++語言:
      ??1、將qedit.h、AdoInpt.h、AdoInpt.cpp、AdoOtpt.h、AdoOtpt.cpp、VdoInpt.h、VdoInpt.cpp、VdoOtpt.h、VdoOtpt.cpp、TkbkClnt.h、TkbkClnt.cpp、BdctClnt.h、BdctClnt.cpp、MediaPocsThrd.h、MediaPocsThrd.cpp、SrvrThrd.h、SrvrThrd.cpp、ClntMediaPocsThrd.h、ClntMediaPocsThrd.cpp和各個庫文件夾復制到自己的軟件中。
      ??2、如果自己的軟件已有傳輸協議:繼承MediaPocsThrd媒體處理線程類,實現UserInit、UserDstoy、UserPocs、UserMsg、UserDvcChg、UserReadAdoVdoInptFrm、UserWriteAdoOtptFrm、UserGetAdoOtptFrm、UserWriteVdoOtptFrm、UserGetVdoOtptFrm這些回調成員函數。
      ????如果自己的軟件沒有傳輸協議:繼承SrvrThrd服務端線程類,實現UserInit、UserDstoy、UserPocs、UserMsg、UserShowLog、UserShowToast、UserSrvrInit、UserSrvrDstoy、UserCnctInit、UserCnctDstoy、UserCnctSts、UserCnctRmtTkbkMode、UserCnctTstNtwkDly這些回調成員函數。
      ??????????????????繼承ClntMediaPocsThrd客戶端媒體處理線程類,實現UserInit、UserDstoy、UserPocs、UserMsg、UserDvcChg、UserShowLog、UserShowToast、UserTkbkClntCnctInit、UserTkbkClntCnctDstoy、UserTkbkClntCnctSts、UserTkbkClntMyTkbkIdx、UserTkbkClntLclTkbkMode、UserTkbkClntTkbkInfoInit、UserTkbkClntTkbkInfoDstoy、UserTkbkClntTkbkInfoRmtTkbkMode、UserTkbkClntTstNtwkDly、UserBdctClntInit、UserBdctClntDstoy、UserBdctClntCnctInit、UserBdctClntCnctDstoy、UserBdctClntCnctSts這些回調成員函數。
      ??3、new這個繼承的類,然后先調用類的Init()成員函數,再調用相關設置成員函數,最后調用start()成員函數啟動該線程即可。
      ??4、當需要線程退出時,調用線程類的RqirExit()成員函數即可。

      ??如果有不需要的部分功能,則只需要修改該功能對應的宏開關即可。
      ??如果只移植部分功能,沒有移植MediaPocsThrd媒體處理線程類,則效果可能不好,因為MediaPocsThrd類做了很多優化。

      ??普通免費功能包括:WebRtc定點版聲學回音消除器、Speex預處理器的噪音抑制、WebRtc定點版噪音抑制器、WebRtc浮點版噪音抑制器、Speex預處理器、Speex編解碼器、Wave文件讀取器、Wave文件寫入器、音頻波形器、本端TCP協議服務端套接字、本端TCP協議客戶端套接字、本端UDP協議套接字。

      ??高級收費功能包括:Speex聲學回音消除器、WebRtc浮點版聲學回音消除器、WebRtc第三版聲學回音消除器、SpeexWebRtc三重聲學回音消除器、RNNoise噪音抑制器、OpenH264編解碼器、自己設計的自適應抖動緩沖器、Avi文件寫入器、本端高級UDP協議套接字。

      ??各個功能對應的文件如下:
      ??* Speex聲學回音消除器:SpeexDsp.h、Func_.lib/dll、SpeexDsp_.lib/dll。
      ??* WebRtc定點版聲學回音消除器:IsIcludWebRtc宏、WebRtc.h、Func_.lib/dll、WebRtc_.lib/dll。
      ??* WebRtc浮點版聲學回音消除器:IsIcludWebRtc宏、WebRtc.h、Func_.lib/dll、WebRtc_.lib/dll。
      ??* WebRtc第三版聲學回音消除器:IsIcludWebRtc3宏、WebRtc3.h、Func_.lib/dll、WebRtc_.lib/dll、WebRtc3_.lib/dll。
      ??
      SpeexWebRtc三重聲學回音消除器:IsIcludSpeexWebRtcAec宏、SpeexWebRtcAec.h、Func_.lib/dll、SpeexDsp_.lib/dll、WebRtc_.lib/dll、WebRtc3_.lib/dll、SpeexWebRtcAec_.lib/dll。
      ??
      WebRtc定點版噪音抑制器:IsIcludWebRtc宏、WebRtc.h、Func_.lib/dll、WebRtc_.lib/dll。
      ??* WebRtc浮點版噪音抑制器:IsIcludWebRtc宏、WebRtc.h、Func_.lib/dll、WebRtc_.lib/dll。
      ??* RNNoise噪音抑制器:IsIcludRNNoise宏、RNNoise.h、Func_.lib/dll、WebRtc_.lib/dll、RNNoise_.lib/dll。
      ??
      Speex預處理器:SpeexDsp.h、Func_.lib/dll、SpeexDsp_.lib/dll。
      ??* Speex編解碼器:IsIcludSpeex宏、Speex.h、Func_.lib/dll、Speex_.lib/dll。
      ??* 音頻波形器:IsIcludAdoWavfm宏、AdoWavfm.h、Func_.lib/dll、AdoWavfm_.lib/dll。
      ??* OpenH264編解碼器:IsIcludOpenH264宏、OpenH264.h、Func_.lib/dll、OpenH264_.lib/dll。
      ??* 圖片處理:LibYUV.h、Func_.lib/dll、LibYUV_.lib/dll。
      ??* 音視頻自適應抖動緩沖器:IsIcludAjb宏、Ajb.h、Func_.lib/dll、Ajb_.lib/dll。
      ??* 本端TCP協議UDP協議套接字:Sokt.h、Func_.lib/dll、DataStruct_.lib/dll、Sokt_.lib/dll。
      ??
      Wave文件Avi文件寫入讀取器:IsIcludMediaFile宏、MediaFile.h、Func_.lib/dll、MediaFile_.lib/dll。

      命令

      ??本軟件支持通過命令行參數來設置,參數如下:
      ??-SrvrUrl xx://xx.xx.xx.xx:xxxx:表示設置服務端Url。
      ??-AddClntSrvrUrl xx://xx.xx.xx.xx:xxxx:表示添加客戶端的服務端Url。
      ??-None:表示選擇掛起對講模式。
      ??-Ado:表示選擇音頻對講模式。
      ??-Vdo:表示選擇視頻對講模式。
      ??-AdoVdo:表示選擇音視頻對講模式。
      ??-SaveStsToTxtFile xxx.txt:表示要保存狀態到xxx.txt文件,可以為相對或絕對完整路徑。
      ??-NoSaveStsToTxtFile:表示不保存狀態到Txt文件。
      ??-PrintLogShowToast:表示要打印Log日志,要顯示Toast。
      ??-NoPrintLogShowToast:表示不打印Log日志,不顯示Toast。
      ??-SaveAdoVdoInptOtptToAviFile xxx.avi:表示要保存音視頻輸入輸出到xxx.avi文件,可以為相對或絕對完整路徑。
      ??-NoSaveAdoVdoInptOtptToAviFile:表示不保存音視頻輸入輸出到Avi文件。
      ??-UseSystemAecNsAgc:表示要使用系統自帶的聲學回音消除器、噪音抑制器和自動增益控制器。
      ??-NoUseSystemAecNsAgc:表示不使用系統自帶的聲學回音消除器、噪音抑制器和自動增益控制器。
      ??-SaveAdoInptOtptToWaveFile AdoInptSrc.wav AdoInptRslt.wav AdoOtptSrc.wav:表示要分別保存音頻輸入原始、音頻輸入結果、音頻輸出原始到AdoInptSrc.wav AdoInptRslt.wav AdoOtptSrc.wav文件,可以為相對或絕對完整路徑。
      ??-NoSaveAdoInptOtptToWaveFile:表示不保存音頻輸入輸出到Wave文件。
      ??-VdoWndShowMode 0|1|2:表示設置視頻窗口的顯示模式,為0表示正常,為1表示垂直最大化排列,為2表示水平最大化排列。
      ??-VdoFrmSz Width Height:表示設置視頻幀的寬度和高度,單位為像素,只能為偶數,不能為奇數。
      ??-WndSz Width Height:表示設置窗口的寬度和高度,單位為像素。
      ??-ShowWnd:表示顯示窗口。
      ??-HideWnd:表示隱藏窗口。
      ??-MinWnd:表示最小化窗口。
      ??-MaxWnd:表示最大化窗口。
      ??-SrvrCreate:表示創建服務端。本參數要放在所有參數的最后。
      ??-ClntCnct 0|1|2|x:表示客戶端連接服務端,數字為客戶端列表序號。本參數要放在所有參數的最后。
      ??-BdctInit:表示廣播初始化。本參數要放在所有參數的最后。

      ??例如:“Windows下音視頻對講演示程序.exe -SrvrUrl Audp://192.168.0.100:12345 -AdoVdo -VdoFrmSz 1280 960 -WndSz 1000 900 -SrvrCreate”:表示設置服務端Url為高級UDP協議、IP地址為192.168.0.100、端口號為12345,選擇音視頻對講模式,設置視頻幀的寬度為1280像素、高度為960像素。設置窗口的寬度為1000像素、高度為900像素,最后創建服務端。
      ??例如:“Windows下音視頻對講演示程序.exe -AddClntSrvrUrl Audp://192.168.0.100:12345 -AdoVdo -VdoFrmSz 1280 960 -WndSz 1000 900 -ClntCnct 0”:表示添加客戶端的服務端Url為高級UDP協議、IP地址為192.168.0.100、端口號為12345,選擇音視頻對講模式,設置視頻幀的寬度為1280像素、高度為960像素。設置窗口的寬度為1000像素、高度為900像素,最后連接客戶端列表序號為0的服務端。

      注意

      ??從老版本更新到新版本時,類文件和庫文件全部都要更新,不能只更新類文件或庫文件,否則會導致意想不到的問題。
      ??本軟件測試的網絡延遲包括兩端來回的網絡延遲,還包括兩端對數據包的處理延遲,所以未對講時延遲低一點,對講開始后延遲會高一點。
      ??如果要使用8000Hz采樣頻率時,最好不要使用RNNoise噪音抑制器,因為它可能對8000Hz的聲音抑制非常強烈。
      ??本軟件不支持音樂,尤其是RNNoise噪音抑制器可能對音樂的抑制非常強烈。
      ??某些Windows設備的軟硬件環境可能存在問題,從而可能會導致聲學回音消除失敗,這種情況必須要先解決這些問題。
      ??某些Windows設備的系統自帶聲學回音消除器、噪音抑制器和自動增益控制器可能會不支持音頻輸入設備,這種情況可以先關閉后再試試。
      ??保存音視頻輸入輸出的AdoVdoInptOtpt.avi文件不能直接播放,需要使用FFmpeg命令轉碼后才能播放,建議用VLC播放器,轉碼命令為:ffmpeg -i AdoVdoInptOtpt.avi -filter_complex "[0:a:1][0:a:2]amix=inputs=2:duration=max[aout]" -map [aout] -map 0:v -acodec pcm_s16le -vcodec copy AdoVdoInptOtpt_Mix.avi -y。

      其他

      ??本軟件采用了Speex的1.2.1版本、SpeexDsp的1.2.1版本、WebRtc的2019年7月份版本、WebRtc的2024年8月份版本、OpenH264的2.5.0版本為基礎,并進行了大量優化。
      ??討論QQ群:511046632 歡迎大家參與測試和討論!
      ??本人QQ號:280604597 赤勇玄心行天道
      ??本人微信:qq280604597 赤勇玄心行天道
      ??本人博客:http://www.rzrgm.cn/gaoyaguo
      ???????https://blog.csdn.net/cyz7758520?type=blog
      ??Windows版源代碼:https://github.com/cyz7758520/Windows_audio_talkback_demo_program
      ???????????https://gitee.com/chen_yi_ze/Windows_audio_talkback_demo_program
      ???????????https://gitcode.com/cyz77585201/Windows_audio_talkback_demo_program
      ??Android版源代碼:https://github.com/cyz7758520/Android_audio_talkback_demo_program
      ???????????https://gitee.com/chen_yi_ze/Android_audio_talkback_demo_program
      ???????????https://gitcode.com/cyz77585201/Android_audio_talkback_demo_program

      版權

      ??Speex:https://gitlab.xiph.org/xiph/speex/-/blob/master/COPYING
      ??WebRtc:https://gitlab.com/webrtc-mirror/webrtc/-/blob/master/LICENSE
      ??RNNoise:https://gitlab.xiph.org/xiph/rnnoise/-/blob/master/COPYING
      ??OpenH264:https://github.com/cisco/openh264/blob/master/LICENSE
      ??LibYUV:https://github.com/lemenkov/libyuv/blob/master/LICENSE
      ??TinyXml2:https://github.com/leethomason/tinyxml2/blob/master/LICENSE.txt

      感謝

      ??感謝 WELEN、善書、陳國福 對 Speex、WebRTC 的指點!

      函數

      MediaPocsThrd媒體處理線程類的回調成員函數


      函數名稱:UserInit
      功能說明:用戶定義的初始化函數,在本線程剛啟動時回調一次。
      參數說明:MediaPocsThrdPt:[輸入],存放媒體處理線程的指針。
      返回說明:無。


      函數名稱:UserDstoy
      功能說明:用戶定義的銷毀函數,在本線程退出時回調一次。
      參數說明:MediaPocsThrdPt:[輸入],存放媒體處理線程的指針。
      返回說明:無。


      函數名稱:UserPocs
      功能說明:用戶定義的處理函數,在本線程運行時每隔1毫秒就回調一次。
      參數說明:MediaPocsThrdPt:[輸入],存放媒體處理線程的指針。
      返回說明:無。


      函數名稱:UserMsg
      功能說明:用戶定義的消息函數,在接收用戶消息時回調一次。
      參數說明:MediaPocsThrdPt:[輸入],存放媒體處理線程的指針。
      ?????MsgTyp:[輸入],存放消息類型。
      ?????MsgParmPt:[輸入],存放消息參數的指針。如果沒有消息參數,則本參數為NULL。
      ?????MsgParmLenByt:[輸入],存放消息參數的長度,單位為字節。如果沒有消息參數,則本參數為0。
      返回說明:本次消息處理結果。


      函數名稱:UserDvcChg
      功能說明:用戶定義的設備改變函數,在音頻輸入設備、音頻輸出設備、視頻輸入設備改變時回調一次。
      參數說明:MediaPocsThrdPt:[輸入],存放媒體處理線程的指針。
      ?????AdoInptDvcNameVstrPt:[輸入],存放音頻輸入設備名稱動態字符串的指針。如果音頻輸入設備沒有改變,則本參數為NULL。
      ?????AdoOtptDvcNameVstrPt:[輸入],存放音頻輸出設備名稱動態字符串的指針。如果音頻輸出設備沒有改變,則本參數為NULL。
      ?????VdoInptDvcNameVstrPt:[輸入],存放視頻輸入設備名稱動態字符串的指針。如果視頻輸入設備沒有改變,則本參數為NULL。
      返回說明:無。


      函數名稱:UserReadAdoVdoInptFrm
      功能說明:用戶定義的讀取音視頻輸入幀函數,在讀取到一個音頻輸入幀或視頻輸入幀并處理完后回調一次。如果不使用音頻輸入和視頻輸入,則本函數不會被回調。
      參數說明:MediaPocsThrdPt:[輸入],存放媒體處理線程的指針。
      ?????AdoInptPcmSrcFrmPt:[輸入],存放音頻輸入Pcm格式原始幀的指針,就是未經過聲學回音消除、噪音抑制、自動增益控制的音頻幀。如果不使用音頻輸入,則本參數為NULL。
      ?????AdoInptPcmRsltFrmPt:[輸入],存放音頻輸入Pcm格式結果幀的指針,就是已經過聲學回音消除、噪音抑制、自動增益控制的音頻幀。如果不使用音頻輸入,則本參數為NULL。
      ?????AdoInptPcmFrmLenUnit:[輸入],存放音頻輸入Pcm格式幀的長度,單位為采樣單元。如果不使用音頻輸入,則本參數無意義。
      ?????AdoInptPcmRsltFrmVoiceActSts:[輸入],存放音頻輸入Pcm格式結果幀的語音活動狀態,為非0表示有語音活動,為0表示無語音活動。如果不使用音頻輸入,則本參數無意義。
      ?????AdoInptEncdRsltFrmPt:[輸入],存放音頻輸入已編碼格式結果幀的指針。如果不使用音頻輸入,或音頻輸入編碼器要使用Pcm原始數據,則本參數為NULL。
      ?????AdoInptEncdRsltFrmLenByt:[輸入],存放音頻輸入已編碼格式結果幀的長度,單位為字節。如果不使用音頻輸入,或音頻輸入編碼器要使用Pcm原始數據,則本參數無意義。
      ?????AdoInptEncdRsltFrmIsNeedTrans:[輸入],存放音頻輸入已編碼格式結果幀是否需要傳輸,為非0表示需要傳輸,為0表示不需要傳輸。如果不使用音頻輸入,或音頻輸入編碼器要使用Pcm原始數據,則本參數無意義。
      ?????VdoInptBgraSrcFrmPt:[輸入],存放視頻輸入Bgra8888格式原始幀的指針。如果不使用視頻輸入,或本次沒有讀取到視頻輸入幀,則本參數為NULL。
      ?????VdoInptBgraSrcFrmWidth:[輸入],存放視頻輸入Bgra8888格式原始幀的寬度,單位為像素。如果不使用視頻輸入,或本次沒有讀取到視頻輸入幀,則本參數無意義。
      ?????VdoInptBgraSrcFrmHeight:[輸入],存放視頻輸入Bgra8888格式原始幀的高度,單位為像素。如果不使用視頻輸入,或本次沒有讀取到視頻輸入幀,則本參數無意義。
      ?????VdoInptBgraSrcFrmLenByt:[輸入],存放視頻輸入Bgra8888格式原始幀的長度,單位為字節。如果不使用視頻輸入,或本次沒有讀取到視頻輸入幀,則本參數無意義。
      ?????VdoInptYu12RsltFrmPt:[輸入],存放視頻輸入Yu12格式結果幀的指針。如果不使用視頻輸入,或本次沒有讀取到視頻輸入幀,則本參數為NULL。
      ?????VdoInptYu12RsltFrmWidth:[輸入],存放視頻輸入Yu12格式結果幀的寬度,單位為像素。如果不使用視頻輸入,或本次沒有讀取到視頻輸入幀,則本參數無意義。
      ?????VdoInptYu12RsltFrmHeight:[輸入],存放視頻輸入Yu12格式結果幀的高度,單位為像素。如果不使用視頻輸入,或本次沒有讀取到視頻輸入幀,則本參數無意義。
      ?????VdoInptYu12RsltFrmLenByt:[輸入],存放視頻輸入Yu12格式結果幀的長度,單位為字節。如果不使用視頻輸入,或本次沒有讀取到視頻輸入幀,則本參數無意義。
      ?????VdoInptEncdRsltFrmPt:[輸入],存放視頻輸入已編碼格式結果幀的指針。如果不使用視頻輸入,或本次沒有讀取到視頻輸入幀,或視頻輸入編碼器要使用Yu12原始數據,則本參數為為NULL。
      ?????VdoInptEncdRsltFrmLenByt:[輸入],存放視頻輸入已編碼格式結果幀的長度,單位為字節。如果不使用視頻輸入,或本次沒有讀取到視頻輸入幀,或視頻輸入編碼器要使用Yu12原始數據,則本參數無意義。
      返回說明:無。


      函數名稱:UserWriteAdoOtptFrm
      功能說明:用戶定義的寫入音頻輸出幀函數,在需要寫入一個音頻輸出幀時回調一次。如果不使用音頻輸出,則本函數不會被回調。注意:本函數不是在媒體處理線程中執行的,而是在音頻輸出線程中執行的,所以本函數應盡量在一瞬間完成執行,否則會導致音頻輸入輸出幀不同步,從而導致聲學回音消除失敗。
      參數說明:MediaPocsThrdPt:[輸入],存放媒體處理線程的指針。
      ?????AdoOtptStrmIdx:[輸入],存放音頻輸出流索引。
      ?????AdoOtptPcmSrcFrmPt:[輸出],存放音頻輸出Pcm格式原始幀的指針。如果音頻輸出解碼器不使用Pcm原始數據,則本參數為NULL。
      ?????AdoOtptPcmFrmLenUnit:[輸入],存放音頻輸出Pcm格式幀的長度,單位為采樣單元。如果音頻輸出解碼器不使用Pcm原始數據,則本參數無意義。
      ?????AdoOtptEncdSrcFrmPt:[輸出],存放音頻輸出已編碼格式原始幀的指針。如果音頻輸出解碼器要使用Pcm原始數據,則本參數為NULL。
      ?????AdoOtptEncdSrcFrmSzByt:[輸入],存放音頻輸出已編碼格式原始幀的大小,單位為字節。如果音頻輸出解碼器要使用Pcm原始數據,則本參數無意義。
      ?????AdoOtptEncdSrcFrmLenBytPt:[輸出],存放音頻輸出已編碼格式原始幀的長度的指針,單位為字節。如果音頻輸出解碼器要使用Pcm原始數據,則本參數為NULL。
      返回說明:無。


      函數名稱:UserGetAdoOtptFrm
      功能說明:用戶定義的獲取音頻輸出幀函數,在解碼完一個已編碼音頻輸出幀時回調一次。如果不使用音頻輸出,則本函數不會被回調。注意:本函數不是在媒體處理線程中執行的,而是在音頻輸出線程中執行的,所以本函數應盡量在一瞬間完成執行,否則會導致音頻輸入輸出幀不同步,從而導致聲學回音消除失敗。
      參數說明:MediaPocsThrdPt:[輸入],存放媒體處理線程的指針。
      ?????AdoOtptStrmIdx:[輸入],存放音頻輸出流索引。
      ?????AdoOtptPcmSrcFrmPt:[輸入],存放音頻輸出Pcm格式原始幀的指針。
      ?????AdoOtptPcmFrmLenUnit:[輸入],存放音頻輸出Pcm格式幀的長度,單位為采樣單元。
      ?????AdoOtptEncdSrcFrmPt:[輸入],存放音頻輸出已編碼格式原始幀的指針。如果音頻輸出解碼器要使用Pcm原始數據,則本參數為NULL。
      ?????AdoOtptEncdSrcFrmLenByt:[輸入],存放音頻輸出已編碼格式原始幀的長度,單位為字節。如果音頻輸出解碼器要使用Pcm原始數據,則本參數無意義。
      返回說明:無。


      函數名稱:UserWriteVdoOtptFrm
      功能說明:用戶定義的寫入視頻輸出幀函數,在可以顯示一個視頻輸出幀時回調一次。如果不使用視頻輸出,則本函數不會被回調。注意:本函數不是在媒體處理線程中執行的,而是在視頻輸出線程中執行的,所以本函數應盡量在一瞬間完成執行,否則會導致音視頻輸出幀不同步。
      參數說明:MediaPocsThrdPt:[輸入],存放媒體處理線程的指針。
      ?????VdoOtptStrmIdx:[輸入],存放視頻輸出流索引。
      ?????VdoOtptYu12SrcFrmPt:[輸出],存放視頻輸出Yu12格式原始幀的指針。如果視頻輸出解碼器不使用Yu12原始數據,則本參數為NULL。
      ?????VdoOtptYu12SrcFrmWidthPt:[輸出],存放視頻輸出Yu12格式原始幀寬度的指針,單位為像素。如果視頻輸出解碼器不使用Yu12原始數據,則本參數為NULL。
      ?????VdoOtptYu12SrcFrmHeightPt:[輸出],存放視頻輸出Yu12格式原始幀高度的指針,單位為像素。如果視頻輸出解碼器不使用Yu12原始數據,則本參數為NULL。
      ?????VdoOtptEncdSrcFrmPt:[輸出],存放視頻輸出已編碼格式原始幀的指針。如果視頻輸出解碼器要使用Yu12原始數據,則本參數為NULL。
      ?????VdoOtptEncdSrcFrmSzByt:[輸入],存放視頻輸出已編碼格式原始幀的大小,單位為字節。如果視頻輸出解碼器要使用Yu12原始數據,則本參數無意義。
      ?????VdoOtptEncdSrcFrmLenBytPt:[輸出],輸入時,存放視頻輸出已編碼格式原始幀的長度的指針,單位為字節。如果視頻輸出解碼器要使用Yu12原始數據,則本參數為NULL。
      返回說明:無。


      函數名稱:UserGetVdoOtptFrm
      功能說明:用戶定義的獲取視頻輸出幀函數,在解碼完一個已編碼視頻輸出幀時回調一次。如果不使用視頻輸出,則本函數不會被回調。注意:本函數不是在媒體處理線程中執行的,而是在視頻輸出線程中執行的,所以本函數應盡量在一瞬間完成執行,否則會導致音視頻輸出幀不同步。
      參數說明:MediaPocsThrdPt:[輸入],存放媒體處理線程的指針。
      ?????VdoOtptStrmIdx:[輸入],存放視頻輸出流索引。
      ?????VdoOtptYu12SrcFrmPt:[輸入],存放視頻輸出Yu12格式原始幀的指針。
      ?????VdoOtptYu12SrcFrmWidth:[輸入],存放視頻輸出Yu12格式原始幀的寬度,單位為像素。
      ?????VdoOtptYu12SrcFrmHeight:[輸入],存放視頻輸出Yu12格式原始幀的高度,單位為像素。
      ?????VdoOtptEncdSrcFrmPt:[輸入],存放視頻輸出已編碼格式原始幀的指針。如果視頻輸出解碼器要使用Yu12原始數據,則本參數為NULL。
      ?????VdoOtptEncdSrcFrmLenByt:[輸入],存放視頻輸出已編碼格式原始幀的長度,單位為字節。如果視頻輸出解碼器要使用Yu12原始數據,則本參數無意義。
      返回說明:無。


      SrvrThrd服務端線程類的回調成員函數


      函數名稱:UserInit
      功能說明:用戶定義的初始化函數,在本線程剛啟動時回調一次。
      參數說明:SrvrThrdPt:[輸入],存放服務端線程的指針。
      返回說明:無。


      函數名稱:UserDstoy
      功能說明:用戶定義的銷毀函數,在本線程退出時回調一次。
      參數說明:SrvrThrdPt:[輸入],存放服務端線程的指針。
      返回說明:無。


      函數名稱:UserPocs
      功能說明:用戶定義的處理函數,在本線程運行時每隔1毫秒就回調一次。
      參數說明:SrvrThrdPt:[輸入],存放服務端線程的指針。
      返回說明:無。


      函數名稱:UserMsg
      功能說明:用戶定義的消息函數,在接收用戶消息時回調一次。
      參數說明:SrvrThrdPt:[輸入],存放服務端線程的指針。
      ?????MsgTyp:[輸入],存放消息類型。
      ?????MsgParmPt:[輸入],存放消息參數的指針。如果沒有消息參數,則本參數為NULL。
      ?????MsgParmLenByt:[輸入],存放消息參數的長度,單位為字節。如果沒有消息參數,則本參數為0。
      返回說明:本次消息處理結果。


      函數名稱:UserShowLog
      功能說明:用戶定義的顯示日志函數。


      函數名稱:UserShowToast
      功能說明:用戶定義的顯示Toast函數。


      函數名稱:UserSrvrInit
      功能說明:用戶定義的服務端初始化函數。


      函數名稱:UserSrvrDstoy
      功能說明:用戶定義的服務端銷毀函數。


      函數名稱:UserCnctInit
      功能說明:用戶定義的連接初始化函數。


      函數名稱:UserCnctDstoy
      功能說明:用戶定義的連接銷毀函數。


      函數名稱:UserCnctSts
      功能說明:用戶定義的連接狀態函數。


      函數名稱:UserCnctRmtTkbkMode
      功能說明:用戶定義的連接遠端對講模式函數。


      函數名稱:UserCnctTstNtwkDly
      功能說明:用戶定義的連接測試網絡延遲函數。


      ClntMediaPocsThrd客戶端媒體處理線程類的回調成員函數


      函數名稱:UserInit
      功能說明:用戶定義的初始化函數,在本線程剛啟動時回調一次。
      參數說明:ClntMediaPocsThrdPt:[輸入],存放客戶端媒體處理線程的指針。
      返回說明:無。


      函數名稱:UserDstoy
      功能說明:用戶定義的銷毀函數,在本線程退出時回調一次。
      參數說明:ClntMediaPocsThrdPt:[輸入],存放客戶端媒體處理線程的指針。
      返回說明:無。


      函數名稱:UserPocs
      功能說明:用戶定義的處理函數,在本線程運行時每隔1毫秒就回調一次。
      參數說明:ClntMediaPocsThrdPt:[輸入],存放客戶端媒體處理線程的指針。
      返回說明:無。


      函數名稱:UserMsg
      功能說明:用戶定義的消息函數,在接收用戶消息時回調一次。
      參數說明:ClntMediaPocsThrdPt:[輸入],存放客戶端媒體處理線程的指針。
      ?????MsgTyp:[輸入],存放消息類型。
      ?????MsgParmPt:[輸入],存放消息參數的指針。如果沒有消息參數,則本參數為NULL。
      ?????MsgParmLenByt:[輸入],存放消息參數的長度,單位為字節。如果沒有消息參數,則本參數為0。
      返回說明:本次消息處理結果。


      函數名稱:UserDvcChg
      功能說明:用戶定義的設備改變函數,在音頻輸入設備、音頻輸出設備、視頻輸入設備改變時回調一次。
      參數說明:ClntMediaPocsThrdPt:[輸入],存放客戶端媒體處理線程的指針。
      ?????AdoInptDvcNameVstrPt:[輸入],存放音頻輸入設備名稱動態字符串的指針。如果音頻輸入設備沒有改變,則本參數為NULL。
      ?????AdoOtptDvcNameVstrPt:[輸入],存放音頻輸出設備名稱動態字符串的指針。如果音頻輸出設備沒有改變,則本參數為NULL。
      ?????VdoInptDvcNameVstrPt:[輸入],存放視頻輸入設備名稱動態字符串的指針。如果視頻輸入設備沒有改變,則本參數為NULL。
      返回說明:無。


      函數名稱:UserShowLog
      功能說明:用戶定義的顯示日志函數。


      函數名稱:UserShowToast
      功能說明:用戶定義的顯示Toast函數。


      函數名稱:UserTkbkClntCnctInit
      功能說明:用戶定義的對講客戶端連接初始化函數。


      函數名稱:UserTkbkClntCnctDstoy
      功能說明:用戶定義的對講客戶端連接銷毀函數。


      函數名稱:UserTkbkClntCnctSts
      功能說明:用戶定義的對講客戶端連接狀態函數。


      函數名稱:UserTkbkClntMyTkbkIdx
      功能說明:用戶定義的對講客戶端我的對講索引函數。


      函數名稱:UserTkbkClntLclTkbkMode
      功能說明:用戶定義的對講客戶端本端對講模式函數。


      函數名稱:UserTkbkClntTkbkInfoInit
      功能說明:用戶定義的對講客戶端對講信息初始化函數。


      函數名稱:UserTkbkClntTkbkInfoDstoy
      功能說明:用戶定義的對講客戶端對講信息銷毀函數。


      函數名稱:UserTkbkClntTkbkInfoRmtTkbkMode
      功能說明:用戶定義的對講客戶端對講信息遠端對講模式函數。


      函數名稱:UserTkbkClntTstNtwkDly
      功能說明:用戶定義的對講客戶端測試網絡延遲函數。


      函數名稱:UserBdctClntInit
      功能說明:用戶定義的廣播客戶端初始化函數。


      函數名稱:UserBdctClntDstoy
      功能說明:用戶定義的廣播客戶端銷毀函數。


      函數名稱:UserBdctClntCnctInit
      功能說明:用戶定義的廣播客戶端連接初始化函數。


      函數名稱:UserBdctClntCnctDstoy
      功能說明:用戶定義的廣播客戶端連接銷毀函數。


      函數名稱:UserBdctClntCnctSts
      功能說明:用戶定義的廣播客戶端連接狀態函數。


      posted @ 2021-01-22 11:45  赤勇玄心行天道  閱讀(1479)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国精品无码一区二区三区在线看| 18禁一区二区每日更新| 国产99在线 | 免费| 亚洲欧美电影在线一区二区| 少妇高潮喷潮久久久影院| 丰满人妻熟妇乱又伦精品劲| 亚洲中文字幕无码爆乳| 东京热高清无码精品| 久久九九兔免费精品6| 国产精品一区二区三区日韩| 大香伊蕉在人线国产最新2005| 亚洲精品一区二区五月天| 亚洲精品日韩在线丰满| 5D肉蒲团之性战奶水欧美| 五月天免费中文字幕av| 午夜免费福利小电影| 久久se精品一区二区三区| 欧美怡春院一区二区三区| 国产情侣激情在线对白| 国产精品嫩草99av在线| 欧美颜射内射中出口爆在线| 亚洲尤码不卡av麻豆| 亚洲av午夜福利精品一区二区 | 人妻少妇偷人无码视频| 少妇激情a∨一区二区三区| 新久久国产色av免费看| 97久久人人超碰国产精品| 国产漂亮白嫩美女在线观看| 国内极度色诱视频网站| 欧美黑人粗暴多交高潮水最多 | 午夜精品久久久久久久2023| 国内极度色诱视频网站| 亚洲国产精品高清久久久| 美女裸体18禁免费网站| 亚洲国产天堂久久综合226114| 4480yy亚洲午夜私人影院剧情| 国产精品福利自产拍久久| 一区二区三区鲁丝不卡| 皮山县| 中文字幕永久精品国产| 日日摸夜夜添夜夜添国产三级|