日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

如何在Android平台GB28181接入终端实现语音广播和语音对讲

發布時間:2023/12/20 Android 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在Android平台GB28181接入终端实现语音广播和语音对讲 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

技術背景

在之前的blog,我們以Android平臺國標接入終端為例,分別介紹了一些常規的功能,比如REGISTER、CATALOG、INVITE、Keepalive、SUBSCRIBE、NOTIFY等常規操作,今天主要介紹下語音廣播和語音對講這部分。

GB28181平臺廣播和對講這塊,重要性不言而喻,沒有廣播的接入終端,數據只是單向流入,加入后,指揮中心和終端之間的聯系更緊密,實時雙向溝通更方便,適用的行業范圍也更廣泛。

相關SPEC解讀

關于語音廣播和對講,感興趣的開發者可直接參閱GBT 28181-2016.pdf相關技術規范里面的9.12章節,以下是部分精選介紹:

命令交互流程

命令描述流程

a) 1:SIP服務器向語音流接收者發送語音廣播通知消息,消息中通過 To頭域標明作為目的地址 的語音流接收者ID,消息采用 Message方法攜帶。

舉例說明:

MESSAGE sip:34020000001380000001@192.168.2.212:12070 SIP/2.0 Via: SIP/2.0/UDP 192.168.2.154:15060;rport;branch=z9hG4bK311226558 From: <sip:34020000002000000001@3402000000>;tag=280226558 To: <sip:34020000001380000001@192.168.2.212:12070> Call-ID: 172226558 CSeq: 207 MESSAGE Content-Type: Application/MANSCDP+xml Max-Forwards: 70 Content-Length: 206<?xml version="1.0" encoding="GB2312"?> <Notify><CmdType>Broadcast</CmdType><SN>461226558</SN><SourceID>34020000002000000001</SourceID><TargetID>34020000001380000001</TargetID> </Notify>

b) 2:語音流接收者收到語音廣播通知消息后,向SIP服務器發送200OK 響應。

SIP/2.0 200 OK CSeq: 207 MESSAGE Call-ID: 172226558 From: <sip:34020000002000000001@3402000000>;tag=280226558 To: <sip:34020000001380000001@192.168.2.212:12070> Via: SIP/2.0/UDP 192.168.2.154:15060;rport=15060;branch=z9hG4bK311226558;received=192.168.2.154 Content-Length: 0

c) 3:語音流接收者向SIP服務器發送語音廣播應答消息,消息中通過 To頭域標明作為目的地 址的SIP服務器ID,消息采用 Message方法攜帶。

MESSAGE sip:34020000002000000001@3402000000 SIP/2.0 Call-ID: 0fc1f2c83c28898a29e146d7ef581908@192.168.2.212 CSeq: 337044229 MESSAGE From: <sip:34020000001380000001@3402000000>;tag=93882333 To: <sip:34020000002000000001@3402000000> Via: SIP/2.0/UDP 192.168.2.212:12070;rport;branch=z9hG4bK-363733-79fd88c45667975e5ebaf18f84b91a8e Max-Forwards: 70 User-Agent: NT GB28181 User Agent V1.2(daniusdk.com) Content-Type: Application/MANSCDP+xml Content-Length: 180<?xml version="1.0" encoding="GB2312"?> <Response> <CmdType>Broadcast</CmdType> <SN>461226558</SN> <DeviceID>34020000001380000001</DeviceID> <Result>OK</Result> </Response>

d) 4:SIP服務器收到語音廣播應答消息后,向語音流接收者發送200OK 響應。

SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.2.212:12070;rport=12070;received=192.168.2.212;branch=z9hG4bK-363733-79fd88c45667975e5ebaf18f84b91a8e From: <sip:34020000001380000001@3402000000>;tag=93882333 To: <sip:34020000002000000001@3402000000>;tag=355226593 CSeq: 337044229 MESSAGE Call-ID: 0fc1f2c83c28898a29e146d7ef581908@192.168.2.212 Content-Length: 0

e) 5:語音流接收者向SIP服務器發送Invite消息,消息中通過 To頭域標明作為目的地址的語音 流發送者ID,消息頭域中攜帶Subject字段,表明請求的語音流發送者ID、發送方媒體流序列 號、語音流接收者ID、接收方媒體流序列號等參數,SDP消息體中s字段為“Play”代表實時點 播,m 字段中媒體參數標識為“audio”表示請求語音媒體流。

INVITE sip:34020000002000000001@3402000000 SIP/2.0 Call-ID: 2b4f0f0512aa1a49ffc645618d0e8bae@192.168.2.212 CSeq: 44264 INVITE From: <sip:34020000001380000001@3402000000>;tag=32ecf22a To: <sip:34020000002000000001@3402000000> Via: SIP/2.0/UDP 192.168.2.212:12070;rport;branch=z9hG4bK-363733-15283c8a0ea0a1e9dbf295ce2359dbe7 Max-Forwards: 70 Contact: <sip:34020000001380000001@192.168.2.212:12070> Subject: 34020000002000000001:0200006727,34020000001380000001:0 User-Agent: NT GB28181 User Agent V1.2(daniusdk.com) Content-Type: APPLICATION/SDP Content-Length: 221v=0 o=34020000002000000001 0 0 IN IP4 192.168.2.212 s=Play c=IN IP4 192.168.2.212 t=0 0 m=audio 25002 TCP/RTP/AVP 8 a=setup:active a=connection:new a=recvonly a=rtpmap:8 PCMA/8000 y=0200006727 f=v/a/1/8/1

f) 6:SIP服務器收到Invite請求后,通過三方呼叫控制建立媒體服務器和語音流發送者之間的媒體連接。向媒體服務器發送Invite消息,此消息不攜帶SDP消息體。

g) 7:媒體服務器收到SIP服務器的Invite請求后,回復200OK 響應,攜帶SDP消息體,消息體 中描述了媒體服務器接收媒體流的IP、端口、媒體格式等內容。

h) 8:SIP服務器收到媒體服務器返回的200OK 響應后,向語音流發送者發送Invite請求,消息 中通過 To頭域標明作為目的地址的語音流發送者ID,消息頭域中攜帶 Subject字段,表明請 求的語音流發送者ID、發送方媒體流序列號、語音流接收者ID、接收方媒體流序列號等參數, 請求中攜帶消息7中媒體服務器回復的200OK 響應消息體,s字段為“Play”代表實時點播, m 字段中媒體參數標識為“audio”表示請求語音媒體流,增加y字段描述SSRC值,f字段描述 媒體參數。

SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.2.212:12070;rport=12070;received=192.168.2.212;branch=z9hG4bK-363733-15283c8a0ea0a1e9dbf295ce2359dbe7 From: <sip:34020000001380000001@3402000000>;tag=32ecf22a To: <sip:34020000002000000001@3402000000>;tag=954226632 CSeq: 44264 INVITE Call-ID: 2b4f0f0512aa1a49ffc645618d0e8bae@192.168.2.212 Contact: <sip:34020000002000000001@192.168.2.154:15060> Content-Length: 222 Content-Type: APPLICATION/SDPv=0 o=34020000002000000001 0 0 IN IP4 192.168.2.154 s=Play c=IN IP4 192.168.2.154 t=0 0 m=audio 30005 TCP/RTP/AVP 8 a=sendonly a=rtpmap:8 PCMA/8000 a=setup:passive a=connection:new y=0200006727 f=v/a/1/8/1

i) 9:語音流發送者收到SIP服務器的Invite請求后,回復200OK 響應,攜帶SDP消息體,消息 體中描述了媒體流發送者發送媒體流的IP、端口、媒體格式、SSRC 字段等內容,s字段為 “Play”代表實時點播,m 字段中媒體參數標識為“audio”表示請求語音媒體流。

j) 10:SIP服務器收到語音流發送者返回的200OK 響應后,向媒體服務器發送 ACK 請求,請求 中攜帶消息9中語音流發送者回復的200OK 響應消息體,完成與媒體服務器的Invite會話 建立過程。

k) 11:SIP服務器收到語音流發送者返回的200OK 響應后,向語音流發送者發送 ACK 請求,請 求中不攜帶消息體,完成與語音流發送者的Invite會話建立過程。

l) 12:完成三方呼叫控制后,SIP服務器通過 B2BUA 代理方式建立語音流接收者和媒體服務器 之間的媒體連接。在消息5中增加SSRC值,轉發給媒體服務器。

m)13:媒體服務器收到Invite請求,回復200OK 響應,攜帶SDP消息體,消息體中描述了媒體服 務器發送媒體流的IP、端口、媒體格式、SSRC值等內容,s字段為“Play”代表實時點播,m 字段 中媒體參數標識為“audio”表示請求語音媒體流。

n) 14:SIP服務器將消息13轉發給語音流接收者。

o) 15:語音流接收者收到200OK 響應后,回復 ACK 消息,完成與SIP服務器的Invite會話建立 過程。

p) 16:SIP服務器將消息15轉發給媒體服務器,完成與媒體服務器的Invite會話建立過程。

q) 17:SIP服務器向語音流接收者發送 BYE消息,斷開消息5、14、15建立的Invite會話。

r) 18:語音流接收者收到 BYE消息后回復200OK 響應,會話斷開。

s) 19:SIP服務器向媒體服務器發送 BYE 消息,斷開消息 12、13、16 建立的同媒體服務器的 Invite會話。

t) 20:媒體服務器收到 BYE消息后回復200OK 響應,會話斷開。

u) 21:SIP服務器向媒體服務器發送 BYE消息,斷開消息6、7、10建立的同媒體服務器的Invite 會話。

v) 22:媒體服務器收到 BYE消息后回復200OK 響應,會話斷開。

w)23:SIP服務器向語音流發送者發送 BYE 消息,斷開消息8、9、11建立的同語音流發送者的 Invite會話。

x) 24:語音流發送者收到 BYE消息后回復200OK 響應,會話斷開。

注:語音廣播通知消息除上述流程中通過SIP服務器發出外,也可由語音流發送者發出,消息中通過 To頭域標明 作為目的地址的語音流接收者ID,經SIP服務器中轉后發往語音流接收者;語音流接收者處理后發送應答消 息,消息中通過 To頭域標明作為目的地址的語音流發送者ID,經SIP服務器中轉后回復給語音流發送者。后續呼叫流程與上述流程相同。

語音對講

語音對講功能實現中心用戶與前端用戶之間的一對一語音對講功能。 語音對講功能由下述兩個獨立的流程組合實現:

a) 通過9.2的實時視音頻點播功能,中心用戶獲得前端設備的實時視音頻媒體流;

b) 通過9.12的語音廣播功能,中心用戶向前端對講設備發送實時音頻媒體流,語音流的封裝格 式見 C.2.4音頻流的 RTP封裝定義。

C.2.4 音頻流的 RTP封裝

語音比特流宜采用標準的 RTP協議進行打包,這里只摘錄G.711A律的:

在一個 RTP包中,音頻載荷數據應為整數個音頻編碼幀,且時間長度在20ms~180ms之間。

音頻載荷數據的 RTP封裝參數如下:

a) G.711的主要參數 G.711A律語音編碼 RTP包的負載類型(PayloadType)的參數規定如下(見IETFRFC3551— 2003中的表4): 1)負載類型(PT):8; 2) 編碼名稱(encodingname):PCMA; 3) 時鐘頻率(clockrate):8kHz; 4) 通道數:1; 5) SDP描述中“m”字段的“media”項:audio。

技術實現

語音廣播接收這塊,由于有之前的RTMP和RTSP播放器積累,直接在player端做相應擴展即可,當收到廣播后,GB28181語音廣播按鈕使能。

相關接口設計如下:

/*++++++++++++++++++RTP Receiver++++++++++++++++++++++*///GitHub: https://github.com/daniulive/SmarterStreaming//WebSite: https://daniusdk.com/** 創建RTP Receiver** @param reserve:保留參數傳0** @return RTP Receiver 句柄,0表示失敗*/public native long CreateRTPReceiver(int reserve);/***設置 RTP Receiver傳輸協議** @param rtp_receiver_handle, CreateRTPReceiver* @param transport_protocol, 0:UDP, 1:TCP, 默認是UDP** @return {0} if successful*/public native int SetRTPReceiverTransportProtocol(long rtp_receiver_handle, int transport_protocol);/***設置 RTP Receiver IP地址類型** @param rtp_receiver_handle, CreateRTPReceiver* @param ip_address_type, 0:IPV4, 1:IPV6, 默認是IPV4** @return {0} if successful*/public native int SetRTPReceiverIPAddressType(long rtp_receiver_handle, int ip_address_type);/***設置 RTP Receiver RTP Socket本地端口** @param rtp_receiver_handle, CreateRTPReceiver* @param port, 必須是偶數,設置0的話SDK會自動分配, 默認值是0** @return {0} if successful*/public native int SetRTPReceiverLocalPort(long rtp_receiver_handle, int port);/***設置 RTP Receiver SSRC** @param rtp_receiver_handle, CreateRTPReceiver* @param ssrc, 如果設置的話,這個字符串要能轉換成uint32類型, 否則設置失敗** @return {0} if successful*/public native int SetRTPReceiverSSRC(long rtp_receiver_handle, String ssrc);/***創建 RTP Receiver 會話** @param rtp_receiver_handle, CreateRTPReceiver* @param reserve, 保留值,目前傳0** @return {0} if successful*/public native int CreateRTPReceiverSession(long rtp_receiver_handle, int reserve);/***獲取 RTP Receiver RTP Socket本地端口** @param rtp_receiver_handle, CreateRTPReceiver** @return 失敗返回0, 成功的話返回響應的端口, 請在CreateRTPReceiverSession返回成功之后調用*/public native int GetRTPReceiverLocalPort(long rtp_receiver_handle);/***設置 RTP Receiver Payload 相關信息** @param rtp_receiver_handle, CreateRTPReceiver** @param payload_type, 請參考 RFC 3551** @param encoding_name, 編碼名, 請參考 RFC 3551, 如果payload_type不是動態的, 可能傳null就好** @param media_type, 媒體類型, 請參考 RFC 3551, 1 是視頻, 2是音頻** @param clock_rate, 請參考 RFC 3551** @return {0} if successful*/public native int SetRTPReceiverPayloadType(long rtp_receiver_handle, int payload_type, String encoding_name, int media_type, int clock_rate);/***設置 RTP Receiver 音頻采樣率** @param rtp_receiver_handle, CreateRTPReceiver* @param sampling_rate, 音頻采樣率** @return {0} if successful*/public native int SetRTPReceiverAudioSamplingRate(long rtp_receiver_handle, int sampling_rate);/***設置 RTP Receiver 音頻通道數** @param rtp_receiver_handle, CreateRTPReceiver* @param channels, 音頻通道數** @return {0} if successful*/public native int SetRTPReceiverAudioChannels(long rtp_receiver_handle, int channels);/***設置 RTP Receiver 遠端地址** @param rtp_receiver_handle, CreateRTPReceiver* @param address, IP地址* @param port, 端口** @return {0} if successful*/public native int SetRTPReceiverRemoteAddress(long rtp_receiver_handle, String address, int port);/***初始化 RTP Receiver** @param rtp_receiver_handle, CreateRTPReceiver** @return {0} if successful*/public native int InitRTPReceiver(long rtp_receiver_handle);/***UnInit RTP Receiver** @param rtp_receiver_handle, CreateRTPReceiver** @return {0} if successful*/public native int UnInitRTPReceiver(long rtp_receiver_handle);/***Destory RTP Receiver Session** @param rtp_receiver_handle, CreateRTPReceiver** @return {0} if successful*/public native int DestoryRTPReceiverSession(long rtp_receiver_handle);/***Destory RTP Receiver** @param rtp_receiver_handle, CreateRTPReceiver** @return {0} if successful*/public native int DestoryRTPReceiver(long rtp_receiver_handle);/*++++++++++++++++++RTP Receiver++++++++++++++++++++++*/

相關調用代碼:

class ButtonGB28181AudioBroadcastListener implements OnClickListener {public void onClick(View v) {if (gb_broadcast_source_id_ != null && gb_broadcast_target_id_ != null) {if (gb28181_agent_ != null ) {if (gb28181_agent_.byeAudioBroadcast(gb_broadcast_source_id_, gb_broadcast_target_id_) ) {gb_broadcast_source_id_ = null;gb_broadcast_target_id_ = null;btnGB28181AudioBroadcast.setText("GB28181語音廣播");btnGB28181AudioBroadcast.setEnabled(false);}}}stopAudioPlayer();destoryRTPReceiver();}} @Override public void ntsOnNotifyBroadcastCommand(String fromUserName, String fromUserNameAtDomain, String sn, String sourceID, String targetID) {handler_.postDelayed(new Runnable() {@Overridepublic void run() {Log.i(TAG, "ntsOnNotifyBroadcastCommand, fromUserName:"+ from_user_name_ + ", fromUserNameAtDomain:"+ from_user_name_at_domain_+ ", SN:" + sn_ + ", sourceID:" + source_id_ + ", targetID:" + target_id_);if (gb28181_agent_ != null ) {gb28181_agent_.respondBroadcastCommand(from_user_name_, from_user_name_at_domain_,sn_,source_id_, target_id_, true);btnGB28181AudioBroadcast.setText("收到GB28181語音廣播通知");}}private String from_user_name_;private String from_user_name_at_domain_;private String sn_;private String source_id_;private String target_id_;public Runnable set(String from_user_name, String from_user_name_at_domain, String sn, String source_id, String target_id) {this.from_user_name_ = from_user_name;this.from_user_name_at_domain_ = from_user_name_at_domain;this.sn_ = sn;this.source_id_ = source_id;this.target_id_ = target_id;return this;}}.set(fromUserName, fromUserNameAtDomain, sn, sourceID, targetID),0); }@Override public void ntsOnAudioBroadcast(String commandFromUserName, String commandFromUserNameAtDomain, String sourceID, String targetID) {handler_.postDelayed(new Runnable() {@Overridepublic void run() {Log.i(TAG, "ntsOnAudioBroadcastPlay, fromFromUserName:" + command_from_user_name_+ " FromUserNameAtDomain:" + command_from_user_name_at_domain_+ " sourceID:" + source_id_ + ", targetID:" + target_id_);stopAudioPlayer();destoryRTPReceiver();if (gb28181_agent_ != null ) {String local_ip_addr = IPAddrUtils.getIpAddress(context_);boolean is_tcp = true; // 考慮到跨網段, 默認用TCP傳輸rtp包rtp_receiver_handle_ = lib_player_.CreateRTPReceiver(0);if (rtp_receiver_handle_ != 0 ) {lib_player_.SetRTPReceiverTransportProtocol(rtp_receiver_handle_, is_tcp?1:0);lib_player_.SetRTPReceiverIPAddressType(rtp_receiver_handle_, 0);if (0 == lib_player_.CreateRTPReceiverSession(rtp_receiver_handle_, 0) ) {int local_port = lib_player_.GetRTPReceiverLocalPort(rtp_receiver_handle_);boolean ret = gb28181_agent_.inviteAudioBroadcast(command_from_user_name_,command_from_user_name_at_domain_,source_id_, target_id_, "IP4", local_ip_addr, local_port, is_tcp?"TCP/RTP/AVP":"RTP/AVP");if (!ret ) {destoryRTPReceiver();btnGB28181AudioBroadcast.setText("GB28181語音廣播");}else {btnGB28181AudioBroadcast.setText("GB28181語音廣播呼叫中");}} else {destoryRTPReceiver();btnGB28181AudioBroadcast.setText("GB28181語音廣播");}}}}private String command_from_user_name_;private String command_from_user_name_at_domain_;private String source_id_;private String target_id_;public Runnable set(String command_from_user_name, String command_from_user_name_at_domain, String source_id, String target_id) {this.command_from_user_name_ = command_from_user_name;this.command_from_user_name_at_domain_ = command_from_user_name_at_domain;this.source_id_ = source_id;this.target_id_ = target_id;return this;}}.set(commandFromUserName, commandFromUserNameAtDomain, sourceID, targetID),0); }@Override public void ntsOnInviteAudioBroadcastException(String sourceID, String targetID, String errorInfo) {handler_.postDelayed(new Runnable() {@Overridepublic void run() {Log.i(TAG, "ntsOnInviteAudioBroadcastException, sourceID:" + source_id_ + ", targetID:" + target_id_);destoryRTPReceiver();btnGB28181AudioBroadcast.setText("GB28181語音廣播");}private String source_id_;private String target_id_;public Runnable set(String source_id, String target_id) {this.source_id_ = source_id;this.target_id_ = target_id;return this;}}.set(sourceID, targetID),0); }@Override public void ntsOnInviteAudioBroadcastTimeout(String sourceID, String targetID) {handler_.postDelayed(new Runnable() {@Overridepublic void run() {Log.i(TAG, "ntsOnInviteAudioBroadcastTimeout, sourceID:" + source_id_ + ", targetID:" + target_id_);destoryRTPReceiver();btnGB28181AudioBroadcast.setText("GB28181語音廣播");}private String source_id_;private String target_id_;public Runnable set(String source_id, String target_id) {this.source_id_ = source_id;this.target_id_ = target_id;return this;}}.set(sourceID, targetID),0); } @Override public void ntsOnInviteAudioBroadcastResponse(String sourceID, String targetID, int statusCode, PlaySessionDescription sessionDescription) {handler_.postDelayed(new Runnable() {@Overridepublic void run() {Log.i(TAG, "ntsOnInviteAudioBroadcastResponse, statusCode:" + status_code_ +" sourceID:" + source_id_ + ", targetID:" + target_id_);boolean is_need_destory_rtp = true;if (gb28181_agent_ != null ) {boolean is_need_bye = 200==status_code_;if (200 == status_code_ && session_description_ != null && rtp_receiver_handle_ != 0 ) {MediaSessionDescription audio_des = session_description_.getAudioDescription();SDPRtpMapAttribute audio_attr = null;if (audio_des != null && audio_des.getRtpMapAttributes() != null && !audio_des.getRtpMapAttributes().isEmpty() )audio_attr = audio_des.getRtpMapAttributes().get(0);if ( audio_des != null && audio_attr != null ) {lib_player_.SetRTPReceiverSSRC(rtp_receiver_handle_, audio_des.getSSRC());lib_player_.SetRTPReceiverPayloadType(rtp_receiver_handle_, audio_attr.getPayloadType(),audio_attr.getEncodingName(), 2, audio_attr.getClockRate());lib_player_.SetRTPReceiverRemoteAddress(rtp_receiver_handle_, audio_des.getAddress(), audio_des.getPort());lib_player_.InitRTPReceiver(rtp_receiver_handle_);if (startAudioPlay()) {is_need_bye = false;is_need_destory_rtp = false;gb_broadcast_source_id_ = source_id_;gb_broadcast_target_id_ = target_id_;btnGB28181AudioBroadcast.setText("終止GB28181語音廣播");btnGB28181AudioBroadcast.setEnabled(true);}}} else {btnGB28181AudioBroadcast.setText("GB28181語音廣播");}if (is_need_bye)gb28181_agent_.byeAudioBroadcast(source_id_, target_id_);}if (is_need_destory_rtp)destoryRTPReceiver();}private String source_id_;private String target_id_;private int status_code_;private PlaySessionDescription session_description_;public Runnable set(String source_id, String target_id, int status_code, PlaySessionDescription session_description) {this.source_id_ = source_id;this.target_id_ = target_id;this.status_code_ = status_code;this.session_description_ = session_description;return this;}}.set(sourceID, targetID, statusCode, sessionDescription),0); }@Override public void ntsOnByeAudioBroadcast(String sourceID, String targetID) {handler_.postDelayed(new Runnable() {@Overridepublic void run() {Log.i(TAG, "ntsOnByeAudioBroadcast sourceID:" + source_id_ + " targetID:" + target_id_);gb_broadcast_source_id_ = null;gb_broadcast_target_id_ = null;btnGB28181AudioBroadcast.setText("GB28181語音廣播");btnGB28181AudioBroadcast.setEnabled(false);stopAudioPlayer();destoryRTPReceiver();}private String source_id_;private String target_id_;public Runnable set(String source_id, String target_id) {this.source_id_ = source_id;this.target_id_ = target_id;return this;}}.set(sourceID, targetID),0); }@Override public void ntsOnTerminateAudioBroadcast(String sourceID, String targetID) {handler_.postDelayed(new Runnable() {@Overridepublic void run() {Log.i(TAG, "ntsOnTerminateAudioBroadcast sourceID:" + source_id_ + " targetID:" + target_id_);gb_broadcast_source_id_ = null;gb_broadcast_target_id_ = null;btnGB28181AudioBroadcast.setText("GB28181語音廣播");btnGB28181AudioBroadcast.setEnabled(false);stopAudioPlayer();destoryRTPReceiver();}private String source_id_;private String target_id_;public Runnable set(String source_id, String target_id) {this.source_id_ = source_id;this.target_id_ = target_id;return this;}}.set(sourceID, targetID),0); }

總結

至此、Android平臺GB28181接入終端,如位置訂閱、語音廣播和語音對講這塊已經全面覆蓋,加上之前的技術積累,看了下,已覆蓋了以下部分:

  • ?[視頻格式]H.264/H.265(Android H.265硬編碼);
  • [音頻格式]G.711 A律、AAC;
  • [音量調節]Android平臺采集端支持實時音量調節;
  • [H.264硬編碼]支持H.264特定機型硬編碼;
  • [H.265硬編碼]支持H.265特定機型硬編碼;
  • [軟硬編碼參數配置]支持gop間隔、幀率、bit-rate設置;
  • [軟編碼參數配置]支持軟編碼profile、軟編碼速度、可變碼率設置;
  • 支持純視頻、音視頻PS打包傳輸;
  • 支持RTP OVER UDP和RTP OVER TCP被動模式;
  • 支持信令通道網絡傳輸協議TCP/UDP設置;
  • 支持注冊、注銷,支持注冊刷新及注冊有效期設置;
  • 支持設備目錄查詢應答;
  • 支持心跳機制,支持心跳間隔、心跳檢測次數設置;
  • 支持移動設備位置(MobilePosition)訂閱和通知;
  • 支持國標GB/T28181—2016平臺接入;
  • 支持語音廣播及語音對講;
  • [實時水印]支持動態文字水印、png水印;
  • [實時靜音]支持實時靜音/取消靜音;
  • [實時快照]支持實時快照;
  • [降噪]支持環境音、手機干擾等引起的噪音降噪處理、自動增益、VAD檢測。?

特別是語音廣播和語音對講這塊,是GB28181終端接入模塊的一個核心擴展功能,在智能門禁、工業與物聯網、監控等行業,用途非常廣泛,技術實現這塊,不要忽略的技術點還有降噪和回音消除這塊,由于之前我們有技術積累,可以直接復用,對新入手的開發者來說,也提出了新的挑戰,感興趣的開發者,可以酌情參考。

總結

以上是生活随笔為你收集整理的如何在Android平台GB28181接入终端实现语音广播和语音对讲的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久撸在线视频 | 99这里只有久久精品视频 | 久久久久久黄色 | 国产毛片久久 | 国产裸体永久免费视频网站 | 午夜久久久久久久久久久 | 成人影音av| 免费在线观看午夜视频 | 天天操天天操一操 | 国产精品免费久久久 | 国产精品va最新国产精品视频 | 久久深爱网 | 日韩免费一级a毛片在线播放一级 | 人人玩人人添人人 | 在线观看一区视频 | 午夜av大片 | 三级黄色在线观看 | www.婷婷色| 亚洲精品国产精品乱码在线观看 | 波多野结衣网址 | 成人av一区二区在线观看 | 欧美大片大全 | 手机av看片 | 黄色软件在线观看免费 | 国产精品国内免费一区二区三区 | 久久久国产成人 | 亚洲 欧美日韩 国产 中文 | 亚洲成人av一区 | 亚洲综合国产精品 | 国产小视频免费在线观看 | 亚洲码国产日韩欧美高潮在线播放 | 狠狠狠狠狠操 | 国产精品久久久久影视 | 在线成人一区 | 精品国产免费av | 天天操天天摸天天干 | 免费黄色小网站 | 三级黄色在线 | 丁香久久激情 | 97成人在线观看视频 | 亚洲女欲精品久久久久久久18 | 久草视频免费看 | 亚洲精品午夜aaa久久久 | 欧洲在线免费视频 | 日韩动漫免费观看高清完整版在线观看 | 日韩视频一区二区三区在线播放免费观看 | 国产黄大片在线观看 | 日韩一区精品 | 九色最新网址 | 深夜免费福利 | 久久久影片| 精品在线观看视频 | 超级碰视频 | 欧美99精品| 日韩精品欧美专区 | av免费在线观看1 | 国产精品久久久久久超碰 | 综合五月 | 99av国产精品欲麻豆 | 91成人在线视频观看 | 欧美另类视频 | 国产资源在线播放 | 日韩高清激情 | 91久久精品日日躁夜夜躁国产 | 热久久免费视频 | 亚洲精品美女在线观看 | 久久在线视频在线 | 国产精品久久久久久一区二区 | 久久久久久高潮国产精品视 | 五月开心网| 成人免费在线播放 | 久久夜色精品国产欧美乱 | 欧美日韩不卡在线 | 在线看片91 | 亚洲国产三级在线 | 亚洲精品91天天久久人人 | 国产亚洲亚洲 | 日韩欧美视频在线播放 | 二区精品视频 | 99久久精品电影 | 最新色视频 | 国产在线专区 | www国产亚洲精品久久麻豆 | 欧美一级性 | a v在线观看 | 国产精品九九视频 | 中文字幕亚洲欧美日韩 | av电影不卡在线 | 免费激情在线电影 | 伊人婷婷在线 | 久久久久久久久久久久久影院 | 国产在线精品一区二区 | 亚洲黄色av| 国产一区二区三区免费观看视频 | 日本中文字幕在线一区 | 欧美性色综合网 | 91香蕉视频黄色 | 日韩欧美专区 | 一区二区三区视频网站 | 波多野结衣一区 | 一区二区三区在线免费播放 | 国产最新91 | 夜夜爽www | 欧美网址在线观看 | 婷婷视频在线播放 | 毛片.com| 久久国色夜色精品国产 | 99久久久久久久久久 | 久久视频网址 | 国产精品美女免费看 | 日韩视频中文字幕 | 九精品| 亚洲动漫在线观看 | 日韩视频一区二区在线 | 精品美女视频 | 色婷婷久久久综合中文字幕 | 最近中文字幕在线中文高清版 | 国产精品久久久久久影院 | 色停停五月天 | av网站免费在线 | 久久综合色影院 | 亚洲网站在线看 | 日韩在线观看第一页 | 日本三级香港三级人妇99 | 九九久久久久99精品 | 国产手机免费视频 | 日本公妇在线观看 | 欧美激情第八页 | 日韩精品一区二区不卡 | 天天射成人 | 丁香六月婷婷激情 | 久久97久久97精品免视看 | 女人18片| 99夜色| 天天做天天爱夜夜爽 | 成人av中文字幕在线观看 | 国产中文字幕一区二区三区 | 亚洲欧美日韩国产精品一区午夜 | 一区二区亚洲精品 | 国产精品99久久久久人中文网介绍 | 国产在线视频一区二区三区 | 99麻豆视频 | 国产日韩中文字幕 | 永久免费观看视频 | 欧美激情综合五月色丁香 | 成人av动漫在线 | 91桃色国产在线播放 | 激情网在线视频 | 波多野结衣视频一区二区三区 | 亚洲www天堂com | 国产欧美精品xxxx另类 | 久久天天躁夜夜躁狠狠躁2022 | 久久国产欧美日韩精品 | 黄色一级大片在线观看 | 久久久免费精品视频 | 精品在线观看一区二区 | 午夜少妇 | 欧美综合国产 | 视频在线观看国产 | 超碰国产在线 | 欧美尹人| 国产日韩三级 | 久久久久久久久久久久国产精品 | 国产日韩欧美视频 | 国内精品中文字幕 | 久久天天躁狠狠躁夜夜不卡公司 | 日本黄色大片儿 | 日日爱影视 | 国产分类视频 | 国产品久精国精产拍 | av大片免费在线观看 | 在线播放日韩 | 日韩精品专区在线影院重磅 | 久久精品视频18 | www91在线| 欧美性极品xxxx娇小 | 天天色天天草天天射 | 在线观看视频福利 | 欧美日韩中文视频 | 久久亚洲综合国产精品99麻豆的功能介绍 | 国模一区二区三区四区 | 欧美一二三区播放 | 最近日本中文字幕 | 婷婷六月天丁香 | 在线超碰av| 婷婷六月久久 | 国产亚洲精品综合一区91 | 91黄视频在线观看 | 国产高清在线不卡 | 亚洲年轻女教师毛茸茸 | 亚洲成人精品国产 | 欧美日韩国产在线一区 | 最近日韩中文字幕中文 | 国产精品久久视频 | 在线免费av网 | 国产在线精品播放 | 91香蕉视频 | 91精品老司机久久一区啪 | 极品嫩模被强到高潮呻吟91 | 天天摸天天弄 | 日韩免费视频一区二区 | 国产一区二区三区高清播放 | 国产在线观看午夜 | 亚洲精品网页 | 久艹在线播放 | 久久久精华网 | 一区二区三区久久 | 日韩69av | 欧美a级片免费看 | 在线免费91 | 六月丁香激情综合 | www久 | www色,com | 亚洲午夜精品福利 | 亚洲黄色av一区 | 五月激情丁香图片 | 亚洲精品久久久久999中文字幕 | 香蕉视频国产在线 | av成人在线观看 | 2000xxx影视 | 久久久观看 | 天天爱天天射天天干天天 | 欧美日韩视频免费看 | 久久久久久久久艹 | 97超碰精品 | 国产亚洲资源 | 黄色h在线观看 | 天天射天天射 | 国产成人亚洲在线观看 | 国产精品永久免费 | 综合色在线 | 久久久久女教师免费一区 | 日韩欧美国产精品 | 亚洲视频免费在线看 | 久久色在线观看 | 欧美一级乱黄 | 精品 一区 在线 | 91丨porny丨九色 | av黄色av | 久久久久久久久久久网 | 97超碰人人澡人人爱学生 | 久久天天操 | 99久久er热在这里只有精品66 | 欧美 亚洲 另类 激情 另类 | 96精品视频 | 国产亚洲视频在线 | 久久久久久久久久电影 | 国产精品99久久久久久有的能看 | 欧洲精品亚洲精品 | 99精品视频在线 | 欧美大jb| 国内精自线一二区永久 | 成人av电影免费在线观看 | 国产伦理久久 | 麻豆视频在线观看免费 | 久久在线电影 | 久久精品首页 | 美女久久久久久久久久 | 日韩有码第一页 | 99热官网 | 免费看片网址 | 亚洲.www | 国内精品毛片 | 一区二区不卡高清 | 久久久精品国产一区二区三区 | 国产精品视频全国免费观看 | 99免费在线视频观看 | 久久97久久97精品免视看 | 国内精品免费久久影院 | 中文字幕一区二 | 91视频 - 114av| 在线你懂的视频 | 亚洲精品在线免费播放 | 国产精品99久久久精品 | 久久字幕网 | 欧美大码xxxx | 日韩精品电影在线播放 | 亚洲精品66 | 久久亚洲综合国产精品99麻豆的功能介绍 | 亚洲天堂网在线视频观看 | 一区二区三区日韩精品 | 在线www色 | 青草视频免费观看 | 国产精品一区二区av影院萌芽 | 日韩在线视频在线观看 | 婷婷色伊人 | 日韩sese | www久久国产| 色姑娘综合天天 | 在线亚洲天堂网 | www看片网站 | 久久躁日日躁aaaaxxxx | www.色com | 国产一区二区三区免费在线观看 | 国产精品国产三级国产aⅴ无密码 | 国产日韩高清在线 | 欧美韩日精品 | 福利视频| 国产精品99久久免费黑人 | 狠狠狠色狠狠色综合 | 欧美日韩综合在线 | 婷婷色吧 | 中文字幕色婷婷在线视频 | 久久久久久久久久网站 | 久久精品电影院 | 日韩高清观看 | 91chinesexxx | 久久高清免费视频 | av高清影院| 91在线精品视频 | 97操操操 | 国产高清日韩 | 中文字幕视频在线播放 | 成人午夜剧场在线观看 | 国产高清日韩欧美 | 国产99久久九九精品 | 色a资源在线 | 91欧美精品 | 黄色毛片在线 | 国产精品正在播放 | 最新在线你懂的 | 九九久久电影 | 欧美日韩午夜爽爽 | 成人av动漫在线 | 午夜精品久久久久久 | 激情深爱.com | 国产特级毛片aaaaaa | 中文字幕一区二区三区乱码不卡 | 亚洲国产免费 | 中文字幕第 | 国产成人精品一区二区三区网站观看 | 色午夜影院 | av日韩在线网站 | 97视频在线看 | 在线亚洲人成电影网站色www | 国产 中文 日韩 欧美 | 久久精品国产一区 | 成人av久久 | 91桃色免费视频 | 91刺激视频| 中文字幕一二 | 国产不卡免费 | 欧美韩国日本在线观看 | 欧美久久久久久久久久久 | 一级特黄aaa大片在线观看 | 欧美国产日韩在线视频 | 玖操 | 国产一区91 | 99久久精品免费看国产麻豆 | 中文字幕人成乱码在线观看 | 狠狠激情中文字幕 | 国产小视频你懂的在线 | 中文字幕日韩国产 | 激情五月婷婷激情 | 一级淫片a| 亚洲一区二区三区精品在线观看 | 婷婷六月激情 | 国产精品久久久久影院 | 日韩一区二区三区观看 | 色婷婷国产精品一区在线观看 | 久久免费播放视频 | 999一区二区三区 | 韩日精品在线 | 日韩欧美高清视频在线观看 | 成人a v视频 | 日韩av电影免费在线观看 | 国产黑丝一区二区 | 97高清免费视频 | 久久国产精品99国产 | 香蕉网站在线观看 | 免费观看一级 | 日一日操一操 | 欧美精品xx | 久久精品电影 | 亚洲 中文 欧美 日韩vr 在线 | 人人爽人人爽人人爽学生一级 | 日韩特级黄色片 | 又黄又网站 | 亚洲视频免费在线 | 欧美综合国产 | 97免费在线观看视频 | 日韩高清精品一区二区 | 亚洲区另类春色综合小说 | 制服丝袜在线 | 在线天堂v| 美女网站在线播放 | 久久深夜| 伊人国产在线播放 | www久草 | www.黄色片网站 | 91大神精品视频 | 国产精品一区二区三区视频免费 | 少妇bbw撒尿| 国产专区视频在线 | 久久国产精品网站 | 中文字幕免费成人 | 国产专区视频 | 天天草天天插 | 午夜视频免费播放 | 精品高清美女精品国产区 | 亚洲 成人 一区 | 中文字幕精品视频 | 麻豆系列在线观看 | 国产精品网红直播 | 黄色毛片视频 | 91最新在线 | 五月天婷婷综合 | 亚洲男男gaygayxxxgv | 亚洲理论片在线观看 | 九九欧美视频 | 国产精品大片免费观看 | 久久久精品一区二区三区 | 美女黄网站视频免费 | 二区三区在线 | 国产免费黄视频在线观看 | 人人爽人人舔 | 美女在线免费观看视频 | 丰满少妇麻豆av | 久久99精品国产麻豆宅宅 | 国产精品自产拍在线观看蜜 | 国产精品完整版 | 国产精品视频久久久 | 三级动图 | 久久激情综合 | 亚州av一区 | av一级二级| 国产又粗又猛又爽又黄的视频先 | 久久久国产精品久久久 | 久久成年人网站 | 欧美日韩不卡一区二区三区 | av在线亚洲天堂 | 亚洲精品黄色在线观看 | 国产小视频精品 | 一区二区视频免费在线观看 | 久久综合99| 99热999 | 激情五月综合 | 国产视频精品免费播放 | 国产人成在线视频 | 中文字幕在线看视频国产 | 人人添人人| 伊人久久影视 | 免费大片黄在线 | 欧美最猛性xxxxx免费 | 人人干人人搞 | av官网| 色爱区综合激月婷婷 | 日韩精品久久久久 | 亚洲h在线播放在线观看h | 欧美精品久久人人躁人人爽 | 中国一级特黄毛片大片久久 | 一区二区不卡在线观看 | 伊人天天综合 | 日本成人黄色片 | 欧美一级黄色网 | 黄视频网站大全 | 96精品高清视频在线观看软件特色 | 国产一区二区在线免费视频 | 国产亚洲视频在线免费观看 | 久久精品视频中文字幕 | 成人黄在线 | 中文字幕乱偷在线 | 成人免费观看大片 | 激情网五月婷婷 | 久久久久国产免费免费 | 福利一区在线视频 | 国产成人一区二区啪在线观看 | 丁香花中文在线免费观看 | 日本在线中文在线 | 久久成人精品视频 | 96久久| 国产亚洲视频在线免费观看 | 97超碰伊人 | 亚洲韩国一区二区三区 | 久久激情久久 | 亚洲乱码久久久 | 婷婷色亚洲 | 久久伊人精品一区二区三区 | 在线成人免费av | 精品国产免费久久 | 欧美日韩国产在线一区 | 欧美成人黄色片 | 免费看片在线观看 | 最新99热 | 四虎在线视频免费观看 | 97日日 | 久久国产精品一区二区三区 | 国产精品中文字幕在线播放 | 天天干天天做天天操 | av观看久久久 | 欧美一区二区在线刺激视频 | 丁香六月色 | 日本中文字幕在线 | 久久精品99精品国产香蕉 | 三级av黄色 | 久久一久久 | 国产香蕉视频在线观看 | 国产精品久久99精品毛片三a | 色网站视频| 天天射天天拍 | 欧美精品一区二区免费 | 婷婷开心久久网 | av一级在线 | 亚洲精品玖玖玖av在线看 | 日韩在线高清 | 成人a视频片观看免费 | 色婷婷狠狠五月综合天色拍 | 区一区二区三区中文字幕 | 中文字幕专区高清在线观看 | 国产韩国精品一区二区三区 | 涩涩伊人 | 欧美狠狠色 | 中文字幕乱偷在线 | 99视频这里只有 | 日本黄色大片儿 | 午夜色大片在线观看 | 久久久久久久免费 | 国内精品久久久久久久久久久 | 日本中文在线播放 | 日躁夜躁狠狠躁2001 | 国产精久久久 | 亚洲视频在线免费看 | 韩国av在线播放 | 美女av在线免费 | 开心丁香婷婷深爱五月 | 日韩久久一区二区 | 国产成人久久精品 | www.久久久 | 丁香网婷婷| 国产一区二区综合 | 日本不卡视频 | 狠狠干夜夜爱 | 99久久99精品| 国产精品不卡视频 | 免费看毛片在线 | av在线8| 99在线精品视频 | 韩国av永久免费 | 日韩欧美在线高清 | 狠狠天天| 日韩精品视频在线观看网址 | 久久久精品久久 | 欧美成人性网 | 美女黄频网站 | 99爱视频| 天天操天天爽天天干 | 亚洲国产影院 | 国产在线观看 | 久久av免费观看 | 中文字幕 成人 | 天天操夜夜操天天射 | 久久久亚洲麻豆日韩精品一区三区 | 亚洲特级片 | 99精品视频99| 国产成人精品免费在线观看 | 99中文视频在线 | 中文av日韩 | 99热日本| 色噜噜色噜噜 | 九九九九免费视频 | 操操操日日日干干干 | 久草在线这里只有精品 | 视频一区二区在线观看 | 亚洲最大激情中文字幕 | 日韩av看片 | 特级西西人体444是什么意思 | 欧美一区在线看 | 中文字幕一区在线观看视频 | 欧美一级性生活视频 | 国产精品黄网站在线观看 | 麻豆果冻剧传媒在线播放 | 中文在线免费观看 | 丝袜美腿在线视频 | 69国产在线观看 | 99热精品免费观看 | 免费高清av在线看 | 尤物97国产精品久久精品国产 | 久久激情五月丁香伊人 | 99 国产精品 | 国产亚洲精品久久网站 | 亚洲精品乱码久久久久久高潮 | 亚洲少妇xxxx| 午夜丁香网 | 日韩欧美综合在线视频 | 精品国产乱码久久久久久三级人 | 欧美色图p| 国产中文字幕国产 | 日韩免费一二三区 | 久久国产剧场电影 | h久久| 久久99久久99精品免视看婷婷 | 天天操天天操天天爽 | 亚洲五月激情 | 午夜美女av | 在线看国产 | 狠狠色狠狠色综合系列 | 永久免费精品视频 | 欧美午夜寂寞影院 | 亚洲一区二区三区四区在线视频 | 亚洲女人天堂成人av在线 | 色天天综合网 | 在线观看不卡的av | 精品视频在线播放 | 最近免费中文字幕mv在线视频3 | 丁香五香天综合情 | 最新精品视频在线 | 久久精品系列 | www最近高清中文国语在线观看 | 日本中文不卡 | 国产亚洲精品久久久久久移动网络 | 国产免费观看高清完整版 | 天天干中文字幕 | 一区二区三区观看 | 欧美最新另类人妖 | 日韩精品播放 | 中文字幕 国产视频 | 亚洲精品乱码久久久久久写真 | www国产在线| 韩国av一区二区三区在线观看 | 97视频播放 | 女人18片毛片90分钟 | 亚洲一区日韩 | 久久久久久久国产精品视频 | 日韩综合在线观看 | 国产在线播放一区 | 99婷婷| 国产日本亚洲高清 | 日本aaaa级毛片在线看 | 91爱爱网址 | 国产精品久久网站 | 日韩在线网址 | 久久久久久久久网站 | 成人午夜精品福利免费 | 视频在线在亚洲 | 国产精品综合av一区二区国产馆 | 日日爱夜夜爱 | 精品二区久久 | 亚洲涩涩涩涩涩涩 | 国产91aaa| 丁香激情综合国产 | 91在线免费播放视频 | 韩日av一区二区 | 草莓视频在线观看免费观看 | 久草视频在线免费播放 | 久久久久久久久久久免费视频 | 国产成人中文字幕 | 免费看黄在线 | 国产精品男女啪啪 | 99精品99 | 九九视频免费在线观看 | 手机看片99| 欧美日韩精品在线播放 | 就要色综合 | 又黄又刺激视频 | 国产超碰在线观看 | 国产精品系列在线 | 国产看片免费 | 国产高清免费观看 | 国产精品二区三区 | 免费成人在线视频网站 | www.日韩免费 | 亚洲三级在线播放 | 日韩av不卡播放 | 麻豆网站免费观看 | 免费成人黄色av | 国产一区在线精品 | 91亚洲国产成人久久精品网站 | 免费观看av网站 | 免费在线观看午夜视频 | 久久视频免费 | www.av免费观看| 久久久在线视频 | 激情av资源| 国产在线一区二区三区播放 | 亚洲 欧美 变态 国产 另类 | av怡红院| 丁香婷婷成人 | 国产一级性生活 | 久久国产精品免费观看 | 黄色小网站在线观看 | 91自拍成人| 最近日本中文字幕a | 午夜一级免费电影 | 在线看毛片网站 | 国产美女精品人人做人人爽 | 国产精品99久久久久久久久久久久 | 成人午夜电影久久影院 | 欧美精彩视频在线观看 | 在线电影日韩 | 亚洲成a人片在线www | 国产精品一区一区三区 | 天天做天天看 | 久草在线一免费新视频 | 日本三级中文字幕在线观看 | 青草草在线视频 | 女人高潮特级毛片 | 国产精品二区在线 | av久久久久久 | 日韩高清三区 | 超碰资源在线 | 深爱激情站 | 日韩偷拍精品 | 波多野结衣视频一区 | 亚洲精品国产拍在线 | 亚洲在线视频网站 | 精品在线小视频 | 五月婷婷丁香六月 | 中文字幕乱视频 | 国产午夜一区 | 久久 亚洲视频 | 免费裸体视频网 | 久草网免费 | 日韩两性视频 | 九色91视频| 亚洲综合在线观看视频 | av在线看网站 | 久久国产电影 | 久久大片网站 | 久久天堂影院 | 国产精品原创av片国产免费 | 天天干天天拍天天操 | 亚洲精品一区中文字幕乱码 | 日本系列中文字幕 | 亚洲天天 | av电影在线观看完整版一区二区 | 国产精品视频线看 | 精品一区二区在线免费观看 | 欧美日韩高清在线观看 | 97超碰超碰 | 亚洲成人一二三 | 99视频精品全部免费 在线 | 日韩高清成人 | 天天激情站 | 丁香花在线视频观看免费 | 日韩电影在线看 | 激情欧美丁香 | 免费网址在线播放 | 日本黄色免费大片 | 久草在线视频网 | 日韩久久视频 | 天天射天天拍 | 成人av高清在线观看 | 96国产在线 | 黄色网址中文字幕 | 粉嫩av一区二区三区四区在线观看 | 91一区啪爱嗯打偷拍欧美 | 国产精品一区在线观看 | 99久久精品国产一区 | 久久久久 免费视频 | 91精品1区2区 | 九九精品视频在线观看 | 国产日韩欧美自拍 | 国产在线国偷精品产拍 | 久久午夜剧场 | 久久99精品国产99久久 | 久久久性| 国产在线观看你懂的 | 色视频网站在线观看一=区 a视频免费在线观看 | 天天爱天天操天天射 | 天天干天天看 | 中文字幕在线中文 | 999国内精品永久免费视频 | 久久爱综合 | 久久精品一区二区三区中文字幕 | 91九色在线视频 | 日本动漫做毛片一区二区 | 久久久久久久久久久久电影 | 美女网站色免费 | 日韩网站在线免费观看 | 国产九九精品 | 在线观看视频国产一区 | 激情久久一区二区三区 | 六月婷操 | 99精品久久只有精品 | 伊人五月婷 | 久久视频精品在线观看 | 成+人+色综合 | 欧洲在线免费视频 | 国内精品久久影院 | 欧美精品九九99久久 | 欧美性久久久 | a天堂免费| 人人讲下载 | 日韩精品视频在线免费观看 | 成人动态视频 | 黄色三级免费看 | av在线直接看 | 99在线高清视频在线播放 | 六月天综合网 | 91欧美国产| 五月婷婷综合色拍 | 久久精品男人的天堂 | 国产视频日韩 | 在线国产精品视频 | 毛片a级片 | 久久69av| 久久久黄视频 | 日韩午夜三级 | а天堂中文最新一区二区三区 | 国产精品一区二区在线看 | 天天操天天射天天操 | 国产视频在线一区二区 | 国产一区视频免费在线观看 | 亚洲激精日韩激精欧美精品 | 99久久99久久综合 | 久草在线久 | 视频一区在线免费观看 | 久久精品一区二区三区中文字幕 | 色在线亚洲 | 日韩成人免费在线观看 | 黄色av一区 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 亚洲精品国产高清 | 久久综合婷婷国产二区高清 | 天天色天天骑天天射 | 成人a视频| 国产三级香港三韩国三级 | 久久精品一二三区白丝高潮 | 亚洲精品福利在线观看 | 欧美大片第1页 | 久久午夜精品影院一区 | 99国内精品久久久久久久 | 婷婷久月| 国产在线91在线电影 | 最近更新中文字幕 | 激情 一区二区 | 色在线最新 | 日本中文字幕网 | 婷婷开心久久网 | 国产成人免费观看 | 国产香蕉视频 | 久久成 | 国产午夜精品理论片在线 | 麻花天美星空视频 | a黄在线观看| 2019免费中文字幕 | 国产精品久久影院 | 国产精品欧美久久 | 美女福利视频在线 | 九九精品视频在线观看 | 国产黑丝一区二区三区 | 国产玖玖视频 | 国产亚洲精品久久久久久大师 | 日韩视频1区 | 日韩av午夜在线观看 | 永久免费看av | 很黄很污的视频网站 | 久久久久97国产 | av3级在线 | 五月婷婷毛片 | 久久久免费毛片 | 国产黄色高清 | 国产精品手机在线观看 | 国内精品久久久久影院优 | 99在线视频播放 | 美女视频黄色免费 | 人人插人人看 | 99久热在线精品 | 亚洲精品午夜久久久久久久久久久 | 国产精品欧美激情在线观看 | 91精品国产高清自在线观看 | 91麻豆精品国产自产在线 | 成人在线视频在线观看 | 天天做天天爱天天爽综合网 | 99亚洲国产精品 | 欧美日韩中文在线 | 欧美综合在线视频 | 亚洲精品美女视频 | 成年人黄色在线观看 | 91久久偷偷做嫩草影院 | 久久国产精品久久精品 | 又粗又长又大又爽又黄少妇毛片 | 国产人成一区二区三区影院 | 黄色看片 | 中文字幕在线第一页 | 97天堂网| 欧美一区二区精品在线 | 国产精品久久久久一区二区 | 亚洲资源| 久久精品99久久久久久2456 | 国产成人精品久久 | 欧美性生活免费看 | 国产婷婷vvvv激情久 | 成人影片在线播放 | 久久综合五月天 | 国产视频精品免费播放 | 日韩av电影手机在线观看 | 亚洲国产精品成人va在线观看 | 免费av网址在线观看 | 一区二区三区视频网站 | 日韩久久精品一区二区三区下载 | 亚洲激情在线视频 | 国产中文字幕第一页 | 成年人免费av网站 | 精品国产一区二区三区久久 | 五月婷丁香 | 在线视频 成人 | 免费三级av | 人人涩| 色婷婷www | 亚洲精品视频网址 | 麻豆视频国产 | 伊色综合久久之综合久久 | 97超级碰碰碰视频在线观看 | 日日操日日插 | 韩日视频在线 | 亚洲国产欧美在线人成大黄瓜 | 四虎国产精品成人免费影视 | av电影在线不卡 | 在线观看av的网站 | 丁香网婷婷 | 成人午夜性影院 | 在线观看精品 | 少妇超碰在线 | 波多野结衣动态图 | 亚洲国产成人精品在线观看 | 奇米影音四色 | 在线观看黄色小视频 | 天天操天天操一操 | 午夜精品久久久久久久久久久久 | 亚洲欧美日韩一二三区 | 波多野结衣电影一区二区 | 久99久久| 1000部国产精品成人观看 | 久久精品视频网 | 99久久99久久精品国产片果冰 | 国产不卡一| 国产精品国产三级在线专区 | 99九九99九九九视频精品 | 国产成本人视频在线观看 | 五月天综合色激情 | 99热精品久久 | 色欧美日韩 | 亚洲国产最新 | 国产色女 | 在线观看av网 | 91精品综合| 欧美性视频网站 | 亚洲清纯国产 | 狠狠久久 | 国产一级片久久 | 精品在线视频观看 | 国产剧情在线一区 | 成人午夜久久 | 美女视频是黄的免费观看 | 色噜噜狠狠色综合中国 | 精品国产电影 | 日韩精品一区在线观看 | 欧美性脚交 | 97色国产 | 超碰国产在线观看 | 久久精品国产精品亚洲精品 | 黄网站色成年免费观看 | 国产精品视频在线观看 | 黄色av网站在线观看免费 | 天天操福利视频 | 五月天婷亚洲天综合网精品偷 | 婷婷日日| 97精品国产97久久久久久春色 | 久热色超碰 | 国产精品国产自产拍高清av | 欧美黑吊大战白妞欧美 | 久久成人精品视频 | 久久久高清视频 | 久久香蕉国产 | 中文字幕乱码电影 | 精品一区 精品二区 | 午夜影视一区 | 欧美日韩激情视频8区 | 日本激情视频中文字幕 | 精品国产视频在线 | 五月婷婷综合在线视频 | 999在线精品 | 久久影视一区二区 | 免费av观看| 国产一级二级三级在线观看 | 伊人婷婷色| 欧美精品中文字幕亚洲专区 | 91视频麻豆视频 | 久久久九色精品国产一区二区三区 | 国产精品久久久久久久久久久久午夜 | 国产精品自在线拍国产 | 久久精品视频3 | 欧美精彩视频在线观看 | 国产中文字幕在线看 | 久久综合九色综合久99 | 日韩乱码中文字幕 | av成人动漫在线观看 | 国产黄色精品在线观看 | 亚洲三级av | 男女男视频| 亚洲视频在线看 | 91网址在线看 | 婷婷综合五月天 | 久久高清精品 | 久久社区视频 | 国产在线观看h | 国产成人一区二区在线观看 |