掌桥专利:专业的专利平台
掌桥专利
首页

一种通信模块切换方法、装置、电子设备和存储介质

文献发布时间:2024-04-18 19:58:26


一种通信模块切换方法、装置、电子设备和存储介质

技术领域

本发明涉及通讯技术领域,具体涉及一种通信模块切换方法、装置、电子设备和存储介质。

背景技术

随着生活水平的提高和科学技术的发展,能够通过短程通信进行数据传输的设备在人们生活中得到了越来越广泛的应用,人们对于设备之间数据传输的要求越来越高。

目前,单一的使用一种短程通信的方式进行数据传输,无法满足用户对于数据传输的高要求。比如有的短程通信方式存在延时大以及由于传输带宽低对数据进行压缩导致数据受损的缺点,有的短程通信方式容易因为同频段干扰、传输通道资源抢占等问题而产生较大延时。因此,如果采用单一的短程通信方式,会影响用户的数据传输体验,无法保证在多种场景下都可以进行低延时高品质的数据传输。

发明内容

本发明实施例提供一种通信模块切换方法、装置、电子设备和存储介质,可以实现不同短程通信方式的自动切换,改善用户的数据传输体验,实现在多种场景下都可以进行低延时高品质的数据传输。

本发明实施例提供一种通信模块切换方法,应用于数据接收端,包括:

获取数据发送端与所述数据接收端之间的开机时长偏差;

通过与数据发送端建立连接的第一短程通信模块接收所述数据发送端发送的目标数据,所述目标数据中包括所述目标数据发送时所述数据发送端的第一开机时长;

根据所述第一开机时长和所述开机时长偏差,确定所述目标数据发送时所述数据接收端的第二开机时长;

确定接收所述目标数据时数据接收端的第三开机时长,基于所述第二开机时长和所述第三开机时长,计算所述目标数据的传输耗时;

若所述传输耗时大于预设的传输耗时阈值,通过第二短程通信模块与所述数据发送端建立连接,通过所述第二短程通信模块进行数据传输。

可选的,本发明实施例提供一种通信模块切换装置,应用于数据接收端,包括:

时长偏差获取单元,用于获取数据发送端与所述数据接收端之间的开机时长偏差;

数据接收单元,用于通过与数据发送端建立连接的第一短程通信模块接收所述数据发送端发送的目标数据,所述目标数据中包括所述目标数据发送时所述数据发送端的第一开机时长;

第二时长确定单元,用于根据所述第一开机时长和所述开机时长偏差,确定所述目标数据发送时所述数据接收端的第二开机时长;

传输耗时计算单元,用于确定接收所述目标数据时数据接收端的第三开机时长,基于所述第二开机时长和所述第三开机时长,计算所述目标数据的传输耗时;

通信模块切换单元,用于若所述传输耗时大于预设的传输耗时阈值,通过第二短程通信模块与所述数据发送端建立连接,通过所述第二短程通信模块进行数据传输。

可选的,所述通信模块切换单元,用于若所述传输耗时大于预设的传输耗时阈值,保持所述第一短程通信模块与数据发送端之间的连接;

通过第二短程通信模块与所述数据发送端建立连接,通过所述第二短程通信模块进行数据传输;

本发明实施例提供的通信模块切换装置还包括第一通信模块继续传输单元,用于通过与所述数据发送端保持连接的第一短程通信模块进行传输耗时计算,确定所述第一短程通信模块在进行数据传输时的新的传输耗时;

若所述新的传输耗时不大于所述切换耗时阈值,断开所述第二短程通信模块与所述数据发送端之间的连接,继续通过所述第一短程通信模块进行数据传输。

可选的,所述时长偏差获取单元,用于获取对时时刻对应的对时数据包,所述对时数据包中包括数据发送端和数据接收端的开机时长;

基于所述开机时长,计算所述对时时刻对应的所述数据发送端和所述数据接收端之间的开机时长偏差。

可选的,所述时长偏差获取单元,用于获取对时时刻所述数据接收端的第一对时开机时长;

将所述第一对时开机时长发送给数据发送端,触发所述数据发送端确定接收到所述第一对时开机时长时的第二对时开机时长,根据所述第一对时开机时长和所述第二对时开机时长生成初始对时数据包,以及在向所述数据接收端发送所述初始对时数据包时向所述初始对时数据包中加入发送时刻所述数据发送端的第三对时开机时长得到对时数据包;

接收所述对时数据包。

可选的,本发明实施例提供的通信模块切换装置还包括第四时长确定单元,用于确定接收所述对时数据包时所述数据接收端的第四对时开机时长;

所述时长偏差获取单元,用于基于所述对时数据包中的第一对时开机时长、第二对时开机时长、第三对时开机时长以及所述第四对时开机时长,计算所述对时时刻对应的所述数据发送端和所述数据接收端之间的开机时长偏差。

可选的,本发明实施例提供的通信模块切换装置还包括双向传输耗时计算单元,用于基于所述对时数据包中的第一对时开机时长、第二对时开机时长、第三对时开机时长以及所述第四对时开机时长,确定所述数据接收端与所述数据发送端之间的双向数据传输耗时;

所述时长偏差获取单元,用于若所述双向数据传输耗时不大于预设的双向传输耗时阈值,基于所述双向数据传输耗时,以及所述对时数据包中的第一对时开机时长、第二对时开机时长、第三对时开机时长和所述第四对时开机时长,计算所述对时时刻对应的所述数据发送端和所述数据接收端之间的开机时长偏差。

可选的,所述通信模块切换单元,用于若所述传输耗时大于预设的传输耗时阈值,统计在传输所述目标数据后的预设时间内每一次通过所述第一短程通信模块接收所述数据发送端发送的数据的参考传输耗时;

若每一参考传输耗时均大于所述传输耗时阈值,通过第二短程通信模块与所述数据发送端建立连接,通过所述第二短程通信模块进行数据传输。

可选的,所述通信模块切换单元,用于若所述传输耗时大于预设的传输耗时阈值,统计在传输所述目标数据后的预设时间内每一次通过所述第一短程通信模块接收所述数据发送端发送的数据的参考传输耗时;

计算所述参考传输耗时对应的传输平均耗时;

若传输平均耗时大于所述传输耗时阈值,通过第二短程通信模块与所述数据发送端建立连接,通过所述第二短程通信模块进行数据传输。

可选的,所述目标数据为音频帧数据,所述数据发送端为音源发送端,所述数据接收端为音频播放端。

可选的,本发明实施例提供的通信模块切换装置还包括音频帧处理单元,用于根据通过所述第一短程通信模块时进行音频数据传输时接收到的第一音频帧数据,以及从所述第一短程通信模块切换至所述第二短程通信模块时接收到的第二音频帧数据,确定所述第二音频帧数据与所述第一音频帧数据之间的差异音频帧;

基于所述差异音频帧进行变速不变调处理,得到处理后的差异音频帧;

根据所述处理后的差异音频帧和所述第二音频帧数据进行音频播放。

可选的,所述第一短程通信模块为WiFi通信模块,所述第二短程通信模块为蓝牙通信模块。

相应的,本发明实施例还提供一种电子设备,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行本发明实施例所提供的任一种通信模块切换方法中的步骤。

相应的,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明实施例所提供的任一种通信模块切换方法中的步骤。

此外,本发明实施例还提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现本发明实施例所提供的任一种通信模块切换方法中的步骤。

采用本发明实施例的方案,可以获取数据发送端与该数据接收端之间的开机时长偏差,通过与数据发送端建立连接的第一短程通信模块接收该数据发送端发送的目标数据,该目标数据中包括该目标数据发送时该数据发送端的第一开机时长,根据该第一开机时长和该开机时长偏差,确定该目标数据发送时该数据接收端的第二开机时长,确定接收该目标数据时数据接收端的第三开机时长,基于该第二开机时长和该第三开机时长,计算该目标数据的传输耗时,若该传输耗时大于预设的传输耗时阈值,通过第二短程通信模块与该数据发送端建立连接,通过该第二短程通信模块进行数据传输;由于在本发明实施例中,基于数据发送端与数据接收端之间在传输目标数据对应的数据发送端的开机时长和数据接收端的开机时长,确定出传输目标数据时的耗时,并根据耗时动态的切换数据接收端中与数据发送端进行通信的短程通信模块,因此,可以实现不同短程通信方式的自动切换,无需用户手动设置,改善用户的数据传输体验,实现在多种场景下都可以进行低延时高品质的数据传输。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的通信模块切换方法的场景示意图;

图2是本发明实施例提供的通信模块切换方法的流程图;

图3是本发明实施例提供的获取开机时长片场的流程示意图;

图4是本发明实施例提供的数据发送端和数据接收端之间的数据交互示意图;

图5是本发明实施例提供的确定传输耗时的技术实现示意图;

图6是本发明实施例提供的通信模块切换装置的结构示意图;

图7是本发明实施例提供的通信模块切换装置的另一结构示意图;

图8是本发明实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种通信模块切换方法、装置、电子设备和计算机可读存储介质。具体地,本发明实施例提供适用于通信模块切换装置的通信模块切换方法,该通信模块切换装置可以集成在电子设备中。

该电子设备可以为终端等设备,包括但不限于移动终端和固定终端,例如移动终端包括但不限于智能手机、智能手表、平板电脑、笔记本电脑、智能车载等,其中,固定终端包括但不限于台式电脑、智能电视等。

该电子设备还可以为服务器等设备,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDelivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。

本发明实施例的通信模块切换方法,可以由终端实现,也可以由终端和服务器共同实现。

下面以终端和服务器共同实现该通信模块切换方法为例,对该方法进行说明。

如图1所示,本发明实施例提供的通信模块切换系统包括终端10和服务器20等;终端10与服务器20之间通过网络连接,比如,通过有线或无线网络连接等,其中,终端10可以作为用户向服务器20请求获取的数据的终端存在。

其中,服务器20,可以用于存储目标数据,向终端10发送目标数据等。

终端10,可以用于获取服务器20与终端10之间的开机时长偏差,通过与服务器20建立连接的第一短程通信模块接收服务器20发送的目标数据,目标数据中包括目标数据发送时服务器20的第一开机时长,根据第一开机时长和开机时长偏差,确定目标数据发送时终端10的第二开机时长,确定接收目标数据时终端10的第三开机时长,基于第二开机时长和第三开机时长,计算目标数据的传输耗时,若传输耗时大于预设的传输耗时阈值,通过第二短程通信模块与服务器20建立连接,通过第二短程通信模块进行数据传输。

以下分别进行详细说明。需要说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。

本发明实施例将从通信模块切换装置的角度进行描述,该通信模块切换装置具体可以集成在服务器或终端中。

如图2所示,本实施例的通信模块切换方法的具体流程可以如下:

201、获取数据发送端与数据接收端之间的开机时长偏差。

其中,数据发送端为可以向其他设备发送数据的电子设备。数据发送端中可以存储有其他设备所请求的数据,或者,数据发送端可以根据其他设备的请求,从某些存储位置中获得其他设备所请求的数据。

具体的,数据接收端为具有向数据发送端请求数据以及接收数据发送端发送的数据等功能的电子设备。一般的,数据接收端可以支持至少两种不同的短程通信方式。

例如,数据发送端可以为智能手机,数据接收端可以为智能车载,智能车载可以具有WiFi、蓝牙、NFC、红外传输等短程通信方式中的至少两种短程通信功能。智能车载可以根据用户的操作主动地向智能手机请求某些数据,或者,智能车载可以被动接收智能手机发送的数据。智能手机在发送数据时,可以是从自身存储的数据中选择某些数据进行发送,或者,智能手机可以从互联网中下载数据进行发送等等。

其中,开机时长偏差表示的是数据发送端的开机时间长度与数据接收端的开机时间长度之间相差的时长。

可以理解的是,数据发送端与数据接收端的开机时刻可能并不相同,相应的,在进行数据传输的过程中,同一时刻下数据发送端从其开机时刻到该时刻所经历的时长与数据接收端从其开机时刻到该时刻所经历的时长也会存在不同。为了将这种不同定量化地表示,可以在特定的时刻进行开机时长偏差的计算。即,步骤“获取数据发送端与数据接收端之间的开机时长偏差”,可以包括:

获取对时时刻对应的对时数据包,对时数据包中包括数据发送端和数据接收端的开机时长;

基于开机时长,计算对时时刻对应的数据发送端和数据接收端之间的开机时长偏差。

其中,对时数据包可以是数据发送端发送给数据接收端的数据包。

对时数据包中除了数据发送端和数据接收端的开机时长可以不再包括其他的数据,或者,对时数据包中除了数据发送端和数据接收端的开机时长外,还可以包括数据发送端需要发送给数据接收端的目标数据等以节约传输资源。

可以理解的是,对时数据包并不一定是在对时时刻由数据发送端发送的,也可以是基于对时时刻的某些操作而使得数据发送端生成以及发送的。在一些可选的实施例中,步骤“获取对时时刻对应的对时数据包”,具体可以包括:

获取对时时刻数据接收端的第一对时开机时长;

将第一对时开机时长发送给数据发送端,触发数据发送端确定接收到第一对时开机时长时的第二对时开机时长,根据第一对时开机时长和第二对时开机时长生成初始对时数据包,以及在向数据接收端发送初始对时数据包时向初始对时数据包中加入发送时刻数据发送端的第三对时开机时长得到对时数据包;

接收对时数据包。

也就是说,如图3所示,在对时时刻,数据接收端确定自身开机以来经历的时间T1,即第一对时开机时长,将T1发送给数据发送端。数据发送端接收到T1后,确定在接收到T1时对应的自身开机以来经历的时间T2,即第二对时开机时长。

数据发送端将T1和T2进行组包,得到初始对时数据包,准备通过短程通信进行发送。在发送时,数据发送端再次将自身开机以来经历的时间T3,即第三对时开机时长加入到初始对时数据包中,即得到了对时数据包。数据发送端将对时数据包发送给数据接收端。

在实际应用过程中,可以根据数据接收端接收到的对时数据包时的开机时长以及对时数据包中的T1、T2和T3,利用数据接收端与数据发送端之间的时间差做对时计算。因此,步骤“基于开机时长,计算对时时刻对应的数据发送端和数据接收端之间的开机时长偏差”之前,本发明实施例提供的通信模块切换方法还可以包括:

确定接收对时数据包时数据接收端的第四对时开机时长;

相应的,步骤“基于开机时长,计算对时时刻对应的数据发送端和数据接收端之间的开机时长偏差”,具体可以包括:

基于对时数据包中的第一对时开机时长、第二对时开机时长、第三对时开机时长以及第四对时开机时长,计算对时时刻对应的数据发送端和数据接收端之间的开机时长偏差。

例如,假定数据传输时网络上行和下行是对称的,即网络往返时间相等,此时,开机时长偏差Toffset可以通过如下公式计算得到:

Toffset=((T2+T3)-(T1+T4))/2

此时,Toffset代表的是数据发送端的开机时长减去数据接收端的开机时长得到的差值。

或者,开机时长偏差Toffset也可以通过如下公式计算得到:

Toffset=((T1+T4)-(T2+T3))/2

此时,Toffset代表的是数据接收端的开机时长减去数据发送端的开机时长得到的差值。

其中,第一对时开机时长、第二对时开机时长、第三对时开机时长、第四对时开机时长以及开机时长偏差等可以用毫秒的方式进行表示。本发明实施例对其表示形式不做限定。

可以理解的是,考虑到网络波动以及上下行不对称等问题的影响,在计算开机时长偏差时,可以结合数据在数据发送端和数据接收端来回传输的耗时,选择对开机时长偏差进行均值计算等处理。即。步骤“基于对时数据包中的第一对时开机时长、第二对时开机时长、第三对时开机时长以及第四对时开机时长,计算对时时刻对应的数据发送端和数据接收端之间的开机时长偏差”之前,本发明实施例提供的通信模块切换方法还可以包括:

基于对时数据包中的第一对时开机时长、第二对时开机时长、第三对时开机时长以及第四对时开机时长,确定数据接收端与数据发送端之间的双向数据传输耗时。

具体的,双向数据传输耗时Tdelay可以通过如下的公式计算得到:

Tdelay=T4-T1-(T3-T2)

也就是说,Tdelay实际上表示了在数据接收端和数据发送端之间传输一组数据的总时间减去数据发送端进行组包等处理的时间,即Tdelay表示的是数据在数据发送端和数据接收端进行一次来回传输的耗时。

相应的,步骤“基于对时数据包中的第一对时开机时长、第二对时开机时长、第三对时开机时长以及第四对时开机时长,计算对时时刻对应的数据发送端和数据接收端之间的开机时长偏差”,具体可以包括:

若双向数据传输耗时不大于预设的双向传输耗时阈值,基于双向数据传输耗时,以及对时数据包中的第一对时开机时长、第二对时开机时长、第三对时开机时长和第四对时开机时长,计算对时时刻对应的数据发送端和数据接收端之间的开机时长偏差。

在实际应用过程中,如果双向数据传输耗时不大于预设的双向传输耗时阈值,可以认为对于开机时长偏差的计算误差较小,此时,可以直接将计算得到的数值作为开机时长偏差。

如果双向数据传输耗时大于预设的双向传输耗时阈值,可以认为对于开机时长偏差的计算误差较大,此时,可以获取本次开机时长偏差计算之前若干次计算得到的历史开机时长偏差,对本次开机时长偏差以及历史开机时长偏差进行平均值计算,将均值计算的结果作为真正的开机时长偏差,以减少网络波动等因素的影响。

202、通过与数据发送端建立连接的第一短程通信模块接收数据发送端发送的目标数据,目标数据中包括目标数据发送时数据发送端的第一开机时长。

其中,第一短程通信模块为数据接收端中一可以实现短程通信功能的模块。

具体的,目标数据可以是数据接收端请求数据发送端提供的特定数据,或者,也可以是数据发送端发送给数据接收端的数据。

可选的,目标数据可以是音频数据、文本数据、图像数据、视频数据等等,本发明实施例对目标数据的形式和内容不做限定。

其中,第一开机时长为数据发送端从开机时刻到目标数据发送的时刻所经历的时长。

在一些可选的实施例中,目标数据可以为音频帧数据,相应的,数据发送端即为音源发送端,可以向数据接收端发送音频帧数据。例如,用户可以从数据发送端中选择向数据接收端发送一首歌曲或者一段聊天语音等,此时,目标数据即为歌曲或聊天语音对应的音频帧数据,数据发送端即为音源发送端。

203、根据第一开机时长和开机时长偏差,确定目标数据发送时数据接收端的第二开机时长。

其中,第二开机时长为数据接收端从开机时刻到目标数据发送的时刻所经历的时长。

具体的,如果Toffset代表的是数据接收端的开机时长减去数据发送端的开机时长得到的差值,此时,第二开机时长可以通过如下的计算方式得到:

Ts=Tnow+Toffset

可选的,如果Toffset代表的是数据发送端的开机时长减去数据接收端的开机时长得到的差值,此时,第二开机时长可以通过如下的计算方式得到:

Ts=Tnow-Toffset

其中,Tnow为第一开机时长。

因此,第二开机时长Ts表示的是发送目标数据时刻,数据接收端从开机时刻开始所经过的时长。

在一些可选的实施例中,目标数据可以为音频帧数据,相应的,数据发送端即为音源发送端,可以向数据接收端发送音频帧数据,数据接收端即为音频播放端,可以接收音源发送端发送音频帧数据并进行播放。例如,用户可以从数据发送端中选择向数据接收端发送一段音频等,此时,目标数据即为这段音频对应的音频帧数据,数据发送端即为音源发送端,数据接收端即为音频播放端。

可以理解的是,在本发明实施例中可以在数据接收端与数据发送端保持连接的过程中定时或不定时的对开机时长偏差进行更新。在计算第二开机时长时,一般是针对计算时刻来说最新的开机时长偏差。

例如,如图3所示,数据接收端中可以设置一线程循环执行计算开机时长偏差的步骤,可以每10秒执行一次,直到数据接收端与数据发送端断开连接。

为了节约数据发送端和数据接收端的线程处理资源,数据接收端可以需要与数据发送端断开连接时,生成第一结束线程标记并向数据发送端发送。或者,第一结束线程标记也可以在预设的时刻生成。

比如,技术人员可以设置数据发送端和数据接收端建立连接10分钟后,数据接收端生成第一结束线程标记;或者,技术人员可以设置数据发送端和数据接收端计算开机时长偏差10次后,数据接收端生成第一结束线程标记。

在本发明实施例中,第一结束线程标记可以指示数据发送端和数据接收端结束用于计算开机时长偏差的线程。

204、确定接收目标数据时数据接收端的第三开机时长,基于第二开机时长和第三开机时长,计算目标数据的传输耗时。

其中,第三开机时长为数据接收端从开机时刻到接收到目标数据时刻所经历的时长。

具体的,传输耗时为目标数据从数据发送端传输至数据接收端所经历的时长。

可选的,如果Toffset代表的是数据接收端的开机时长减去数据发送端的开机时长得到的差值,此时,传输耗时Ta可以通过如下的公式计算得到:

Ta=T0-(Tnow+Toffset)

可选的,如果Toffset代表的是数据发送端的开机时长减去数据接收端的开机时长得到的差值,此时,传输耗时Ta可以通过如下的公式计算得到:

Ta=T0-(Tnow-Toffset)

其中,T0为第三开机时长。

在本发明实施例中,计算传输耗时的线程与计算开机时长偏差的线程可以是两个不同的线程。

如图4所示,数据接收端与数据发送端可以均包括发现连接单元、数据传输单元、通信模块优选单元。其中,发现连接模块主要是发现和安全的连接无线音箱。在第一次发现时,不同的短程通信方式(例如WIFI和蓝牙)的安全认证均做好配对,以便通信模块优选单元能自动无缝的切换通信模块。

数据传输单元,用于数据发送端与数据接收端之间进行数据传输。

以数据为音频数据为例,即数据传输模块为音频传输模块。音频传输模块主要把音源发送端的音频帧数据通过第一短程通信模块传输给音频播放端。音源发送端对声音进行采集、无损编码后通过socket传输给音频播放端,音频播放端接收到声音后,进行解码、纠错、缓存、抗抖动等算法后播放出来。

其中,传输的音频帧格式可以为:音频时间头(64位,8字节)+音频帧数据,音频时间头填充为该帧音频产生时,音源发送端设备开机后所经历的毫秒数Tnow,该数据用于通信模块优选单元的各音频帧延时计算。

205、若传输耗时大于预设的传输耗时阈值,通过第二短程通信模块与数据发送端建立连接,通过第二短程通信模块进行数据传输。

其中,第二短程通信模块为数据接收端中另一可以实现短程通信功能的模块。

需要说明的是,第一短程通信模块的对应的短程通信方式的延时在正常传输情况下延时可以是小于第二短程通信模块的对应的短程通信方式的延时。比如,第一短程通信模块可以为WiFi通信模块,第二短程通信模块可以为蓝牙通信模块。

具体的,传输耗时阈值可以是由技术人员或者用户根据实际应用需求设置的。例如,可以根据第一短程通信模块与第二短程通信模块之间的延时差异确定。

比如,第一短程通信模块可以为WiFi通信模块,第二短程通信模块可以为蓝牙通信模块,此时,可以设置传输耗时阈值Tbt为蓝牙通信模块传输音频的延时时间。可以理解的是,不同设备中的蓝牙通信模块可能有不同的延时值,根据设备情况,传输耗时阈值Tbt可以设置在120-200毫秒之间。

在实际应用过程中,不管是否使用第二短程通信模块进行数据传输,数据接收端与数据发送端的都一直通过第一短程通信模块保持数据的发送和接收,以便计算第一短程通信模块的传输耗时,以及更快的进行无缝切换。也就是说,步骤“若传输耗时大于预设的传输耗时阈值,通过第二短程通信模块与数据发送端建立连接,通过第二短程通信模块进行数据传输”,具体可以包括:

若传输耗时大于预设的传输耗时阈值,保持第一短程通信模块与数据发送端之间的连接;

通过第二短程通信模块与数据发送端建立连接,通过第二短程通信模块进行数据传输。

也就是说,无论采用何种短程通信模块进行数据传输,第一短程通信模块会与数据发送端持续保持连接。

相应的,本发明实施例提供的通信模块切换方法还可以包括:

通过与数据发送端保持连接的第一短程通信模块进行传输耗时计算,确定第一短程通信模块在进行数据传输时的新的传输耗时;

若新的传输耗时不大于切换耗时阈值,断开第二短程通信模块与数据发送端之间的连接,继续通过第一短程通信模块进行数据传输。

其中,切换耗时阈值可以是由技术人员或者用户根据实际应用需求设置的。例如,可以根据第一短程通信模块与第二短程通信模块之间的延时差异确定。

比如,第一短程通信模块可以为WiFi通信模块,第二短程通信模块可以为蓝牙通信模块,此时,可以设置切换耗时阈值为WiFi通信模块传输音频的延时时间。

比如,如图5所示,可以连续10秒监控Ta,如果每次Ta都小于80(切换耗时阈值)或者经过滑动过滤计算的平均值(去掉最大值和最小值的波动后的均值)Ta小于80,则重新切换到使用第一短程通信模块传输的音频数据,从而保证重回第一短程通信模块时,延时低于80毫秒。

可选的,确定第一短程通信模块在进行数据传输时的新的传输耗时的时候,可以是通过第一短程通信模块传输当前使用第二短程通信模块正在传输的目标数据以计算新的传输耗时,或者,也可以是通过第一短程通信模块传输特定的测试数据或者空数据包等以计算新的传输耗时。

在一些可选的实施例中,为了避免传输耗时计算误差的影响,避免频繁切换短程通信模块为数据接收端与数据发送端带来负担。此时,步骤“若传输耗时大于预设的传输耗时阈值,通过第二短程通信模块与数据发送端建立连接,通过第二短程通信模块进行数据传输”,具体可以包括:

若传输耗时大于预设的传输耗时阈值,统计在传输目标数据后的预设时间内每一次通过第一短程通信模块接收数据发送端发送的数据的参考传输耗时;

若每一参考传输耗时均大于传输耗时阈值,通过第二短程通信模块与数据发送端建立连接,通过第二短程通信模块进行数据传输。

例如,可以是连续5秒监控Ta,如果每次Ta都大于Tbt,则切换到第二短程通信模块传输音频。此时,通知数据发送端,打开第二短程通信模块与数据接收端进行连接并传输数据。

在另一些可选的实施例中,步骤“若传输耗时大于预设的传输耗时阈值,通过第二短程通信模块与数据发送端建立连接,通过第二短程通信模块进行数据传输”,具体可以包括:

若传输耗时大于预设的传输耗时阈值,统计在传输目标数据后的预设时间内每一次通过第一短程通信模块接收数据发送端发送的数据的参考传输耗时;

计算参考传输耗时对应的传输平均耗时;

若传输平均耗时大于传输耗时阈值,通过第二短程通信模块与数据发送端建立连接,通过第二短程通信模块进行数据传输。

例如,可以是连续5秒监控Ta,如果针对各参考传输耗时经过滑动过滤计算的平均值(去掉最大值和最小值的波动后的均值)Ta大于Tbt,则切换到第二短程通信模块传输音频。此时,通知数据发送端,打开第二短程通信模块与数据接收端进行连接并传输数据。

可选的,为了提升用户的视听体验,如图5所示,可以在短程通信模块切换时,对切换前后二者都需要进行音频融合再输出。本发明实施例提供的通信模块切换方法还可以包括:

根据通过第一短程通信模块时进行音频数据传输时接收到的第一音频帧数据,以及从第一短程通信模块切换至第二短程通信模块时接收到的第二音频帧数据,确定第二音频帧数据与第一音频帧数据之间的差异音频帧;

基于差异音频帧进行变速不变调处理,得到处理后的差异音频帧;

根据处理后的差异音频帧和第二音频帧数据进行音频播放。

切换时,对比通过第一短程通信模块时进行音频数据传输时接收到的第一音频帧数据,和通过第二短程通信模块时进行音频数据传输时接收到的第二音频帧数据,找出相同帧后的相差的帧,对相差的帧进行变速不变调的加速融合播放,从而可用无缝切换。

通过本发明实施例,用户可以感知不到卡顿和断声。如果是第二短程通信模块(例如蓝牙)切换回第一短程通信模块(例如WiFi),则在音频融合完成后,发送数据包通知音源发送端关闭蓝牙。

具体的,变速不变调处理可以是利用同步波形叠加法(Synchronized Overlap-Add,SOLA)、固定同步波形叠加法(Synchronized Overlap-Add and Fixed Synthesis,SOLA-FS)、重采样的方法、对信号频谱进行插值和抽取等方式对音频帧数据进行处理。

需要说明的是,数据接收端可以在需要与数据发送端断开通信连接时,生成第二结束线程标记并向数据发送端发送。

在本发明实施例中,第二结束线程标记可以与第一结束线程标记相同,也可以不同。第二结束线程标记可以指示数据发送端和数据接收端结束用于传输数据的线程。

由上可知,本发明实施例可以获取数据发送端与数据接收端之间的开机时长偏差,通过与数据发送端建立连接的第一短程通信模块接收数据发送端发送的目标数据,目标数据中包括目标数据发送时数据发送端的第一开机时长,根据第一开机时长和开机时长偏差,确定目标数据发送时数据接收端的第二开机时长,确定接收目标数据时数据接收端的第三开机时长,基于第二开机时长和第三开机时长,计算目标数据的传输耗时,若传输耗时大于预设的传输耗时阈值,通过第二短程通信模块与数据发送端建立连接,通过第二短程通信模块进行数据传输;由于在本发明实施例中,基于数据发送端与数据接收端之间在传输目标数据对应的数据发送端的开机时长和数据接收端的开机时长,确定出传输目标数据时的耗时,并根据耗时动态的切换数据接收端中与数据发送端进行通信的短程通信模块,因此,可以实现不同短程通信方式的自动切换,无需用户手动设置,改善用户的数据传输体验,实现在多种场景下都可以进行低延时高品质的数据传输。

为了更好地实施以上方法,相应的,本发明实施例还提供一种通信模块切换装置。

参考图6,该装置包括:

时长偏差获取单元601,可以用于获取数据发送端与所述数据接收端之间的开机时长偏差;

数据接收单元602,可以用于通过与数据发送端建立连接的第一短程通信模块接收所述数据发送端发送的目标数据,所述目标数据中可以包括所述目标数据发送时所述数据发送端的第一开机时长;

第二时长确定单元603,可以用于根据所述第一开机时长和所述开机时长偏差,确定所述目标数据发送时所述数据接收端的第二开机时长;

传输耗时计算单元604,可以用于确定接收所述目标数据时数据接收端的第三开机时长,基于所述第二开机时长和所述第三开机时长,计算所述目标数据的传输耗时;

通信模块切换单元605,可以用于若所述传输耗时大于预设的传输耗时阈值,通过第二短程通信模块与所述数据发送端建立连接,通过所述第二短程通信模块进行数据传输。

在一些可选的实施例中,所述通信模块切换单元605,可以用于若所述传输耗时大于预设的传输耗时阈值,保持所述第一短程通信模块与数据发送端之间的连接;

通过第二短程通信模块与所述数据发送端建立连接,通过所述第二短程通信模块进行数据传输;

如图7所示,本发明实施例提供的通信模块切换装置还可以包括第一通信模块继续传输单元606,可以用于通过与所述数据发送端保持连接的第一短程通信模块进行传输耗时计算,确定所述第一短程通信模块在进行数据传输时的新的传输耗时;

若所述新的传输耗时不大于所述切换耗时阈值,断开所述第二短程通信模块与所述数据发送端之间的连接,继续通过所述第一短程通信模块进行数据传输。

在一些可选的实施例中,所述时长偏差获取单元601,可以用于获取对时时刻对应的对时数据包,所述对时数据包中可以包括数据发送端和数据接收端的开机时长;

基于所述开机时长,计算所述对时时刻对应的所述数据发送端和所述数据接收端之间的开机时长偏差。

在一些可选的实施例中,所述时长偏差获取单元601,可以用于获取对时时刻所述数据接收端的第一对时开机时长;

将所述第一对时开机时长发送给数据发送端,触发所述数据发送端确定接收到所述第一对时开机时长时的第二对时开机时长,根据所述第一对时开机时长和所述第二对时开机时长生成初始对时数据包,以及在向所述数据接收端发送所述初始对时数据包时向所述初始对时数据包中加入发送时刻所述数据发送端的第三对时开机时长得到对时数据包;

接收所述对时数据包。

在一些可选的实施例中,本发明实施例提供的通信模块切换装置还可以包括第四时长确定单元607,可以用于确定接收所述对时数据包时所述数据接收端的第四对时开机时长;

所述时长偏差获取单元601,可以用于基于所述对时数据包中的第一对时开机时长、第二对时开机时长、第三对时开机时长以及所述第四对时开机时长,计算所述对时时刻对应的所述数据发送端和所述数据接收端之间的开机时长偏差。

在一些可选的实施例中,本发明实施例提供的通信模块切换装置还可以包括双向传输耗时计算单元,可以用于基于所述对时数据包中的第一对时开机时长、第二对时开机时长、第三对时开机时长以及所述第四对时开机时长,确定所述数据接收端与所述数据发送端之间的双向数据传输耗时;

所述时长偏差获取单元601,可以用于若所述双向数据传输耗时不大于预设的双向传输耗时阈值,基于所述双向数据传输耗时,以及所述对时数据包中的第一对时开机时长、第二对时开机时长、第三对时开机时长和所述第四对时开机时长,计算所述对时时刻对应的所述数据发送端和所述数据接收端之间的开机时长偏差。

在一些可选的实施例中,所述通信模块切换单元605,可以用于若所述传输耗时大于预设的传输耗时阈值,统计在传输所述目标数据后的预设时间内每一次通过所述第一短程通信模块接收所述数据发送端发送的数据的参考传输耗时;

若每一参考传输耗时均大于所述传输耗时阈值,通过第二短程通信模块与所述数据发送端建立连接,通过所述第二短程通信模块进行数据传输。

在一些可选的实施例中,所述通信模块切换单元605,可以用于若所述传输耗时大于预设的传输耗时阈值,统计在传输所述目标数据后的预设时间内每一次通过所述第一短程通信模块接收所述数据发送端发送的数据的参考传输耗时;

计算所述参考传输耗时对应的传输平均耗时;

若传输平均耗时大于所述传输耗时阈值,通过第二短程通信模块与所述数据发送端建立连接,通过所述第二短程通信模块进行数据传输。

在一些可选的实施例中,所述目标数据为音频帧数据,所述数据发送端为音源发送端,所述数据接收端为音频播放端。

在一些可选的实施例中,本发明实施例提供的通信模块切换装置还可以包括音频帧处理单元608,可以用于根据通过所述第一短程通信模块时进行音频数据传输时接收到的第一音频帧数据,以及从所述第一短程通信模块切换至所述第二短程通信模块时接收到的第二音频帧数据,确定所述第二音频帧数据与所述第一音频帧数据之间的差异音频帧;

基于所述差异音频帧进行变速不变调处理,得到处理后的差异音频帧;

根据所述处理后的差异音频帧和所述第二音频帧数据进行音频播放。

在一些可选的实施例中,所述第一短程通信模块为WiFi通信模块,所述第二短程通信模块为蓝牙通信模块。

由上可知,通过通信模块切换装置,可以获取数据发送端与数据接收端之间的开机时长偏差,通过与数据发送端建立连接的第一短程通信模块接收数据发送端发送的目标数据,目标数据中包括目标数据发送时数据发送端的第一开机时长,根据第一开机时长和开机时长偏差,确定目标数据发送时数据接收端的第二开机时长,确定接收目标数据时数据接收端的第三开机时长,基于第二开机时长和第三开机时长,计算目标数据的传输耗时,若传输耗时大于预设的传输耗时阈值,通过第二短程通信模块与数据发送端建立连接,通过第二短程通信模块进行数据传输;由于在本发明实施例中,基于数据发送端与数据接收端之间在传输目标数据对应的数据发送端的开机时长和数据接收端的开机时长,确定出传输目标数据时的耗时,并根据耗时动态的切换数据接收端中与数据发送端进行通信的短程通信模块,因此,可以实现不同短程通信方式的自动切换,无需用户手动设置,改善用户的数据传输体验,实现在多种场景下都可以进行低延时高品质的数据传输。

此外,本发明实施例还提供一种电子设备,该电子设备可以为终端或者服务器等等,如图8所示,其示出了本发明实施例所涉及的电子设备的结构示意图,具体来讲:

该电子设备可以包括射频(RF,Radio Frequency)电路801、包括有一个或一个以上计算机可读存储介质的存储器802、输入单元803、显示单元804、传感器805、音频电路806、无线保真(WiFi,Wireless Fidelity)模块807、包括有一个或者一个以上处理核心的处理器808、以及电源809等部件。本领域技术人员可以理解,图8中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

RF电路801可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器808处理;另外,将涉及上行的数据发送给基站。通常,RF电路801包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,Subscriber Identity Module)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路801还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,GeneralPacket Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long TermEvolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。

存储器802可用于存储软件程序以及模块,处理器808通过运行存储在存储器802的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器802可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器802还可以包括存储器控制器,以提供处理器808和输入单元803对存储器802的访问。

输入单元803可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元803可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器808,并能接收处理器808发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元803还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元804可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元804可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid CrystalDisplay)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器808以确定触摸事件的类型,随后处理器808根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图8中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。

电子设备还可包括至少一种传感器805,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在电子设备移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于电子设备还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路806、扬声器,传声器可提供用户与电子设备之间的音频接口。音频电路806可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路806接收后转换为音频数据,再将音频数据输出处理器808处理后,经RF电路801以发送给比如另一电子设备,或者将音频数据输出至存储器802以便进一步处理。音频电路806还可能包括耳塞插孔,以提供外设耳机与电子设备的通信。

WiFi属于短距离无线传输技术,电子设备通过WiFi模块807可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图8示出了WiFi模块807,但是可以理解的是,其并不属于电子设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器808是电子设备的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器802内的软件程序和/或模块,以及调用存储在存储器802内的数据,执行电子设备的各种功能和处理数据。可选的,处理器808可包括一个或多个处理核心;优选的,处理器808可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器808中。

电子设备还包括给各个部件供电的电源809(比如电池),优选的,电源可以通过电源管理系统与处理器808逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源809还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管未示出,电子设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,电子设备中的处理器808会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器802中,并由处理器808来运行存储在存储器802中的应用程序,从而实现各种功能,如下:

获取数据发送端与数据接收端之间的开机时长偏差;

通过与数据发送端建立连接的第一短程通信模块接收数据发送端发送的目标数据,目标数据中包括目标数据发送时数据发送端的第一开机时长;

根据第一开机时长和开机时长偏差,确定目标数据发送时数据接收端的第二开机时长;

确定接收目标数据时数据接收端的第三开机时长,基于第二开机时长和第三开机时长,计算目标数据的传输耗时;

若传输耗时大于预设的传输耗时阈值,通过第二短程通信模块与数据发送端建立连接,通过第二短程通信模块进行数据传输。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本发明实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种通信模块切换方法中的步骤。例如,该指令可以执行如下步骤:

获取数据发送端与数据接收端之间的开机时长偏差;

通过与数据发送端建立连接的第一短程通信模块接收数据发送端发送的目标数据,目标数据中包括目标数据发送时数据发送端的第一开机时长;

根据第一开机时长和开机时长偏差,确定目标数据发送时数据接收端的第二开机时长;

确定接收目标数据时数据接收端的第三开机时长,基于第二开机时长和第三开机时长,计算目标数据的传输耗时;

若传输耗时大于预设的传输耗时阈值,通过第二短程通信模块与数据发送端建立连接,通过第二短程通信模块进行数据传输。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。

由于该计算机可读存储介质中所存储的指令,可以执行本发明实施例所提供的任一种通信模块切换方法中的步骤,因此,可以实现本发明实施例所提供的任一种通信模块切换方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

根据本申请的一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述实施例中的各种可选实现方式中提供的方法。

以上对本发明实施例所提供的一种通信模块切换方法、装置、电子设备和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 一种即时通信的数据存储方法、装置、电子设备和介质
  • 页面切换方法以及装置、电子设备及存储介质
  • 虚拟房间切换方法、装置、电子设备及存储介质
  • 业务系统切换方法、装置、电子设备及存储介质
  • 视频增强的切换方法、装置、电子设备及存储介质
  • 一种通信模块切换方法、装置、设备及可读存储介质
  • 一种学习模块的切换方法、装置、存储介质及电子设备
技术分类

06120116490224