CN108322514A - 基于WebRTC的多路音频数据自定义混合技术的研发方法 - Google Patents
基于WebRTC的多路音频数据自定义混合技术的研发方法 Download PDFInfo
- Publication number
- CN108322514A CN108322514A CN201810017396.9A CN201810017396A CN108322514A CN 108322514 A CN108322514 A CN 108322514A CN 201810017396 A CN201810017396 A CN 201810017396A CN 108322514 A CN108322514 A CN 108322514A
- Authority
- CN
- China
- Prior art keywords
- peera
- self
- webrtc
- iceservers
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了基于WebRTC的多路音频数据自定义混合技术的研发方法,为了实现多路音频数据的自定义混合,放弃了现有WebRTC自带的P2P连接功能,通过创建实体类Peer,并使Peer类实现SdpObserver、PeerConnection.Observer、DataChannel.Observer接口,解决了点于点的连接、数据获取、数据处理、数据传输等相关业务逻辑,实现了多路数据混合成一路数据,对各路数据进行其他相关处理的效果。
Description
技术领域
本发明涉及网络通信技术领域,具体为基于WebRTC的多路音频数据自定义混合技术的研发方法。
背景技术
WebRTC名称源自网页实时通信(Web Real-Time Communication)的缩写,是谷歌开源的一个支持实时语音对话或视频对话的技术。谷歌在编译WebRTC时将P2P(对等网络,即对等计算机网络,是一种在对等者Peer之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式)服务已封装到库文件中,但并没有抛出获得传输的数据流的接口,导致在实现多路混音功能时无法实现多路数据混合成一路数据,并且无法对各路数据进行其他处理(例如音量改变、声效合成等),使得无法满足实际使用技术上的需求。
发明内容
本发明的目的在于提供基于WebRTC的多路音频数据自定义混合技术的研发方法,通过创建实体类Peer,并使Peer类实现SdpObserver、PeerConnection.Observer、DataChannel.Observer接口,解决了点于点的连接、数据获取、数据处理、数据传输等相关业务逻辑的问题。
为实现上述目的,本发明提供如下技术方案:基于WebRTC的多路音频数据自定义混合技术的研发方法,包括以下步骤:
S1:自定义创建实体类Peer,包括PeerA和PeerB;
S2:PeerB通知PeerA申请连接,与其建立数据通信通道;
S3:PeerA创建PeerConnection;
S4:PeerA创建offer,请求连接的相关信息;
S5:PeerA发送offer sdp至iceServers并由iceServers转发给PeerB;
S6:PeerB创建answer,发送answer sdp至iceServers并由iceServers转发给PeerA;
S7:PeerA发送candidate至iceServers并由iceServers转发给PeerB;
S8:PeerB添加iceCandidate,发送candidate至iceServers并由iceServers转发给PeerA;
S9:PeerA添加PeerB;
S10:PeerA与PeerB实现点对点通信。
优选的,所述实体类Peer为具有相同特性数据元素和行为的接入点的抽象,其包括属性有数据频道、远程数据列表、音频编码器、音频解码器以及各接口包含的抽象方法的实现,其中接口类别包括onCreateSuccess、onIceConnectionChange、onIceCandidate、onAddStream和onMessage均为Java方法名。
优选的,所述onCreateSuccess为Peer实体创建成功时的回调接口,用于发送消息给iceServers。
优选的,所述onIceConnectionChange接口用于处理Peer实体在不同连接状态下的业务逻辑。
优选的,所述onIceCandidate接口用于PeerA、PeerB与iceServers之间握手时的信息交互的回调。
优选的,所述onAddStream接口用于有新的Peer实体添加时的回调。
优选的,所述onMessage接口用于收到远程数据时的回调,并在回调中对数据进行解码并转交播放控件。
优选的,每个所述的Peer实体根据面向对象的特性自带编码器、解码器以及播放器,各自处理各自的业务逻辑。
与现有技术相比,本发明的有益效果是:
本基于WebRTC的多路音频数据自定义混合技术的研发方法,为了实现多路音频数据的自定义混合,放弃了现有WebRTC自带的P2P连接功能,通过创建实体类Peer,并使Peer类实现SdpObserver、PeerConnection.Observer、DataChannel.Observer接口,解决了点于点的连接、数据获取、数据处理、数据传输等相关业务逻辑,实现了多路数据混合成一路数据,对各路数据进行其他相关处理的效果。
附图说明
图1为本发明实施例一框架流程图;
图2为本发明实施例二框架流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一;
请参阅图1,基于WebRTC的多路音频数据自定义混合技术的研发方法,包括以下步骤:
第一步:自定义创建实体类Peer,包括PeerA和PeerB;
第二步:PeerB通知PeerA申请连接,与其建立数据通信通道;
第三步:PeerA创建PeerConnection;
第四步:PeerA创建offer,请求连接的相关信息;
第五步:PeerA发送offer sdp至iceServers,即A发起请求,进行地址收集并由iceServers转发给PeerB;
第六步:PeerB创建answer,即收到消息进行地址收集,并发送answer sdp至iceServers由iceServers转发给PeerA;
第七步:A收到B的地址等信息,PeerA发送candidate至iceServers并由iceServers转发给PeerB;
第八步:PeerB添加iceCandidate,发送candidate至iceServers并由iceServers转发给PeerA;
第九步:PeerA和PeerB经过多次握手后,PeerA添加PeerB,成功创建点对点连接;
第十步:PeerA与PeerB实现点对点通信。
其中,实体类Peer为具有相同特性(数据元素)和行为(功能)的接入点的抽象,其包括属性有dataChannel(翻译为数据频道)、remoteDataQueue(翻译为远程数据列表)、aacEncode(翻译为音频编码器)、aacDecode(翻译为音频解码器)以及各接口包含的抽象方法的实现,其中接口类别包括onCreateSuccess(定义为SessionDescription sdp)为Peer实体创建成功时的回调接口,用于发送消息给iceServers;onIceConnectionChange(全称为:PeerConnection.IceConnectionState iceConnectionState)接口用于处理Peer实体在不同连接状态下的业务逻辑;onIceCandidate(全称为:IceCandidate candidate)接口用于PeerA、PeerB与iceServers之间握手时的信息交互的回调、onAddStream(全称为:MediaStream mediaStream)接口用于有新的Peer实体添加时的回调;onMessage(全称为:DataChannel.Bufferbuffer)接口用于收到远程数据时的回调,并在回调中对数据进行解码并转交播放控件;每个Peer实体根据面向对象的特性自带编码器、解码器以及播放器,各自处理各自的业务逻辑。
上述onCreateSuccess(全称为:SessionDescription sdp)、onIceConnectionChange(全称为:PeerConnection.IceConnectionStateiceConnectionState)、onIceCandidate(全称为:IceCandidate candidate)、onAddStream(全称为:MediaStream mediaStream)、onMessage(全称为:DataChannel.Bufferbuffer)均为java方法名。
实施例二:
请参阅图2,基于实施例一的基础上,再次创建peerC与A连接,实现PeerA、PeerB、peerC三者关系之间的建立,其方法步骤与实施例一相同,再次不做赘述;参见具体事例:如A为主播,B、C与A连麦,B创建peer并向A发送连接请求,A同意后创建peer并经过多次握手与B建立连接;同理,C创建peer并向A发送连接请求,A同意后创建peer并经过多次握手与C建立连接;A在发送数据给B之前,会将A的数据与C的数据进行混音后再转发给B,发给C亦同理。
基于上述实施例一、实施例二的基础上,还可创建peerD、E、F等,实现多种实体类peer关系的建立。
综上所述:本发明提供的基于WebRTC的多路音频数据自定义混合技术的研发方法,为了实现多路音频数据的自定义混合,放弃了现有WebRTC自带的P2P连接功能,通过创建实体类Peer,并使Peer类实现SdpObserver、PeerConnection.Observer、DataChannel.Observer接口,解决了点于点的连接、数据获取、数据处理、数据传输(数据采集与数据展示的相关技术不属于本发明研究内容)等相关业务逻辑,实现了多路数据混合成一路数据,对各路数据进行其他相关处理的效果。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (8)
1.基于WebRTC的多路音频数据自定义混合技术的研发方法,其特征在于,包括以下步骤:
S1:自定义创建实体类Peer,包括PeerA和PeerB;
S2:PeerB通知PeerA申请连接,与其建立数据通信通道;
S3:PeerA创建PeerConnection;
S4:PeerA创建offer,请求连接的相关信息;
S5:PeerA发送offer sdp至iceServers并由iceServers转发给PeerB;
S6:PeerB创建answer,发送answer sdp至iceServers并由iceServers转发给PeerA;
S7:PeerA发送candidate至iceServers并由iceServers转发给PeerB;
S8:PeerB添加iceCandidate,发送candidate至iceServers并由iceServers转发给PeerA;
S9:PeerA添加PeerB;
S10:PeerA与PeerB实现点对点通信。
2.如权利要求1所述的基于WebRTC的多路音频数据自定义混合技术的研发方法,其特征在于,所述实体类Peer为具有相同特性的数据元素和行为功能的接入点的抽象,其包括属性有数据频道、远程数据列表、音频编码器、音频解码器以及各接口包含的抽象方法的实现,其中接口类别包括onCreateSuccess、onIceConnectionChange、onIceCandidate、onAddStream和onMessage均为java方法名。
3.如权利要求2所述的基于WebRTC的多路音频数据自定义混合技术的研发方法,其特征在于,所述onCreateSuccess为Peer实体创建成功时的回调接口,用于发送消息给iceServers。
4.如权利要求2所述的基于WebRTC的多路音频数据自定义混合技术的研发方法,其特征在于,所述onIceConnectionChange接口用于处理Peer实体在不同连接状态下的业务逻辑。
5.如权利要求2所述的基于WebRTC的多路音频数据自定义混合技术的研发方法,其特征在于,所述onIceCandidate接口用于PeerA、PeerB与iceServers之间握手时的信息交互的回调。
6.如权利要求2所述的基于WebRTC的多路音频数据自定义混合技术的研发方法,其特征在于,所述onAddStream接口用于有新的Peer实体添加时的回调。
7.如权利要求2所述的基于WebRTC的多路音频数据自定义混合技术的研发方法,其特征在于,所述onMessage接口用于收到远程数据时的回调,并在回调中对数据进行解码并转交播放控件。
8.如权利要求1或2所述的基于WebRTC的多路音频数据自定义混合技术的研发方法,其特征在于,每个所述的Peer实体根据面向对象的特性自带编码器、解码器以及播放器,各自处理各自的业务逻辑。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810017396.9A CN108322514A (zh) | 2018-01-09 | 2018-01-09 | 基于WebRTC的多路音频数据自定义混合技术的研发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810017396.9A CN108322514A (zh) | 2018-01-09 | 2018-01-09 | 基于WebRTC的多路音频数据自定义混合技术的研发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108322514A true CN108322514A (zh) | 2018-07-24 |
Family
ID=62894768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810017396.9A Pending CN108322514A (zh) | 2018-01-09 | 2018-01-09 | 基于WebRTC的多路音频数据自定义混合技术的研发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108322514A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110602522A (zh) * | 2019-10-11 | 2019-12-20 | 西南民族大学 | 一种多路实时直播WebRTC流合成方法 |
CN112738644A (zh) * | 2021-04-01 | 2021-04-30 | 浙江华创视讯科技有限公司 | 一种基于WebRTC的视频流传输方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014000312A1 (zh) * | 2012-06-30 | 2014-01-03 | 华为技术有限公司 | 恢复会话内容的传输的方法,终端和服务器 |
US20140222963A1 (en) * | 2013-02-04 | 2014-08-07 | Oracle International Corporation | Integrated web-enabled session border controller |
US9307031B2 (en) * | 2013-02-04 | 2016-04-05 | Oracle International Corporation | Generic model for customizing protocol behavior through javascript |
CN106656930A (zh) * | 2015-11-02 | 2017-05-10 | 中国电信股份有限公司 | 一种用于浏览器接入ims网络的方法、装置和通信系统 |
-
2018
- 2018-01-09 CN CN201810017396.9A patent/CN108322514A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014000312A1 (zh) * | 2012-06-30 | 2014-01-03 | 华为技术有限公司 | 恢复会话内容的传输的方法,终端和服务器 |
US20140222963A1 (en) * | 2013-02-04 | 2014-08-07 | Oracle International Corporation | Integrated web-enabled session border controller |
US9307031B2 (en) * | 2013-02-04 | 2016-04-05 | Oracle International Corporation | Generic model for customizing protocol behavior through javascript |
CN106656930A (zh) * | 2015-11-02 | 2017-05-10 | 中国电信股份有限公司 | 一种用于浏览器接入ims网络的方法、装置和通信系统 |
Non-Patent Citations (1)
Title |
---|
王怀亭等: ""Android WebRTC 技术在协同设计中的应用"", 《计算机与现代化》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110602522A (zh) * | 2019-10-11 | 2019-12-20 | 西南民族大学 | 一种多路实时直播WebRTC流合成方法 |
CN110602522B (zh) * | 2019-10-11 | 2021-08-03 | 西南民族大学 | 一种多路实时直播WebRTC流合成方法 |
CN112738644A (zh) * | 2021-04-01 | 2021-04-30 | 浙江华创视讯科技有限公司 | 一种基于WebRTC的视频流传输方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4499716B2 (ja) | ピアツーピアネットワークにおけるアプリケーションの実行 | |
CN106331581A (zh) | 一种移动终端与视联网终端通信的方法和装置 | |
CN102025786B (zh) | 一种三网终端互控操作方法与系统 | |
CN103650458A (zh) | 媒体流的传输方法、装置与系统 | |
CN102984189B (zh) | 一种无线网络及其实现方法、终端 | |
CN106161814A (zh) | 一种多方会议的混音方法和装置 | |
CN105637472B (zh) | 具有广义屏幕描述的屏幕内容共享系统的框架 | |
CN106131178A (zh) | 实时内核 | |
CN102801770A (zh) | 一种实现音视频分开传输的Web视频会议的方法 | |
CN109302451A (zh) | 一种图片文件的展示方法和系统 | |
US20210034338A1 (en) | Communications Enablement Platform, System, and Method | |
CN107231290A (zh) | 一种即时通信方法和系统 | |
CN106850384A (zh) | 一种实现访问不同局域网内设备的方法及移动终端 | |
CN107040798A (zh) | 互动展示控制方法、系统、服务器、控制终端及播放终端 | |
Garcia et al. | Kurento: the Swiss army knife of WebRTC media servers | |
CN108322514A (zh) | 基于WebRTC的多路音频数据自定义混合技术的研发方法 | |
CN102291244A (zh) | 一种云广播系统及方法 | |
de Alwis et al. | GT/SD: performance and simplicity in a groupware toolkit | |
CN103347001A (zh) | 一种新型serverless的移动终端会议演示方法 | |
CN110519543A (zh) | 一种可视电话拨打方法及装置 | |
CN110445759A (zh) | 一种电子白板共享方法和装置 | |
Cabri et al. | A proxy‐based framework to support synchronous cooperation on the Web | |
CN116827826B (zh) | 边缘节点的评估方法、装置以及计算机可读存储介质 | |
CN101159629A (zh) | 智能节点弹性重叠网网络架构及监控方法 | |
CN108234146A (zh) | 基于sip协议的网络广播系统及其广播方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180724 |
|
RJ01 | Rejection of invention patent application after publication |