一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

音频数据分享方法、蓝牙终端及计算机可读存储介质与流程

2021-11-29 13:47:00 来源:中国专利 TAG:


1.本发明涉及蓝牙设备领域,更具体地说,涉及一种音频数据分享方法、蓝牙终端及计算机可读存储介质。


背景技术:

2.蓝牙(bluetooth)是一种常见的无线传输技术,普遍被应用在短距离的数据传输。蓝牙音频产品,例如蓝牙音箱、蓝牙耳机等蓝牙终端,做为手机等蓝牙主机的附属产品,应用越来越广。音频也由最初只在一个蓝牙终端上输出,发展到可以同时在两个蓝牙终端,甚至多个蓝牙终端同时输出。
3.目前,对于可以同时在多个蓝牙终端同时输出相同音频数据的方案,需要手动将某一蓝牙终端设置为主设备,其他蓝牙终端则设置为从设备,音频只能从主设备分享到从设备。
4.上述基于主、从设备分享音频的方案,由于在使用时需要手动对主设备和各个从设备分别进行设置,操作十分繁琐。并且,在上述方案中,如果需将主设备进行切换,需要重新将新的蓝牙终端设置为主设备,再依次设置其它每个蓝牙终端为从设备。


技术实现要素:

5.本发明要解决的技术问题在于,针对上述多蓝牙终端音频分享时设置麻烦的问题,提供一种音频数据分享方法、蓝牙终端及计算机可读存储介质。
6.本发明解决上述技术问题的技术方案是,提供一种音频数据分享方法,应用于蓝牙终端之间的音频数据分享,所述方法包括由所述蓝牙终端执行的以下步骤:
7.在接收到来自蓝牙主机的音频数据时,将当前的组网码封装到蓝牙广播数据包并进行广播发送,以及通过音频流发送所述音频数据,所述组网码由所述蓝牙终端根据输入装置的输入创建;
8.在空闲状态下监听蓝牙广播数据包,且在监听到的蓝牙广播数据包中包含与当前的组网码相同的组网码时,接收所述蓝牙广播数据包的发送端所发送的音频流,并从所述音频流中获取音频数据。
9.作为本发明的进一步优化,所述蓝牙终端存储有公开密钥和私有密钥;
10.所述将当前的组网码封装到蓝牙广播数据包并进行广播发送,以及通过音频流发送所述音频数据,包括:
11.获取公开密钥,并将所述当前的组网码以及公开密钥封装到所述蓝牙广播数据包,以及将所述蓝牙广播数据包进行广播发送;
12.获取私有密钥,并使用所述私有密钥对音频数据进行加密,以及将加密后的音频数据通过音频流发送;
13.所述接收所述蓝牙广播数据包的发送端所发送的音频流,并从所述音频流中获取音频数据,包括:
14.从监听到的蓝牙广播数据包获取公开密钥以及发送所述蓝牙广播数据包的蓝牙终端的蓝牙地址;
15.在所述蓝牙广播数据包中的公开密钥与本地的公开密钥相同时,通过蓝牙地址接收所述蓝牙广播数据包的发送端所发送的音频流,并使用本地的私有密钥对所述音频流中的音频数据进行解密。
16.作为本发明的进一步优化,所述方法还包括由所述蓝牙终端执行的以下步骤:
17.获取输入装置的输入;
18.根据输入装置的输入获取第二预存字符串,并对分享码和第二预存字符串执行第二加密算法获得所述私有密钥;
19.对所述私有密钥执行第二信息摘要算法获得所述公开密钥。
20.作为本发明的进一步优化,所述方法还包括由所述蓝牙终端执行的以下步骤:
21.获取输入装置的输入;
22.根据输入装置的输入生成分享码,并对所述分享码执行第一信息摘要算法获取中间码;
23.根据输入装置的输入获取第一预存字符串,并使用第一预存字符串和第一加密算法对所述中间码进行加密运算,获得所述组网码。
24.作为本发明的进一步优化,所述第一信息摘要算法包括n种哈希算法,所述n为大于或等于2的整数;
25.所述对所述分享码执行第一信息摘要算法获取中间码,包括:
26.使用n种哈希算法分别对所述分享码进行哈希运算,并将n种哈希算法的运算结果组合形成所述中间码。
27.作为本发明的进一步优化,所述蓝牙终端包括多个组网码,所述方法还包括由所述蓝牙终端执行的以下步骤:根据输入装置输入的指令从所述多个组网码中选择其中的一个组网码作为当前的组网码。
28.作为本发明的进一步优化,所述蓝牙终端包括多个私有密钥和多个公开密钥,且每一组网码对应一个私有密钥和一个公开密钥;
29.所述将当前的组网码封装到蓝牙广播数据包并进行广播发送,以及通过音频流发送所述音频数据,包括:
30.获取与当前的组网码对应的公开密钥,并将所述当前的组网码以及公开密钥封装到所述蓝牙广播数据包,以及将所述蓝牙广播数据包进行广播发送;
31.获取与当前的组网码对应的私有密钥,并使用所述私有密钥对音频数据进行加密,以及将加密后的音频数据通过音频流发送;
32.所述接收所述蓝牙广播数据包的发送端所发送的音频流,并从所述音频流中获取音频数据,包括:
33.从监听到的蓝牙广播数据包获取公开密钥以及发送所述蓝牙广播数据包的蓝牙终端的蓝牙地址;
34.在所述蓝牙广播数据包中的公开密钥与所述蓝牙终端的当前的组网码对应的公开密钥相同时,通过蓝牙地址接收所述蓝牙广播数据包的发送端所发送的音频流,并使用与当前的组网码对应的私有密钥对所述音频流中的音频数据进行解密。
35.作为本发明的进一步优化,所述方法还包括由蓝牙终端执行的以下步骤:根据述输入装置的输入设置当前的组网码、公开密钥以及私有密钥。
36.本发明还提供一种蓝牙终端,包括存储器和处理器,所述存储器中存储有可在所述处理器中执行的计算机程序,且所述处理器执行所述计算机程序时实现如上所述的音频数据分享方法的步骤。
37.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如上所述的音频数据分享方法的步骤。
38.本发明具有以下有益效果:通过组网码对多个蓝牙终端进行组网,从而无需对蓝牙终端进行主设备和从设备的设置,即可实现同一组内多个蓝牙终端之间的音频数据分享。并且,通过组网码,同一组中的任一蓝牙终端都可将音频数据分享给其他蓝牙终端,而无需主、从设备的切换设置。
附图说明
39.图1是本发明实施例提供的音频数据分享方法的流程示意图;
40.图2是本发明实施例提供的音频数据分享方法中发送音频数据的流程示意图;
41.图3是本发明实施例提供的音频数据分享方法中接收音频数据的流程示意图;
42.图4是本发明实施例提供的音频数据分享方法中生成组网码的流程示意图;
43.图5是本发明实施例提供的音频数据分享方法中生成私有密钥和公开密钥的流程示意图;
44.图6是本发明实施例提供的蓝牙终端的示意图。
具体实施方式
45.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
46.如图1所示,是本发明实施例提供的音频数据分享方法流程示意图,该方法可应用于蓝牙终端,并实现多个蓝牙终端之间的音频数据分享,例如上述蓝牙终端可包括美国高通公司的qcc3034蓝牙芯片或类似的蓝牙芯片。
47.本实施例的方法可由运行于蓝牙终端的软件构成,上述蓝牙终端可以为蓝牙耳机、蓝牙音箱等可进行音频播放的电子设备,且该方法具体可包括以下步骤:
48.步骤s11:蓝牙终端将当前的组网码封装到蓝牙广播数据包并进行广播发送,以及通过音频流发送来自蓝牙主机的音频数据。该步骤可在蓝牙终端与蓝牙主机(例如蓝牙手机、音频播放器等)通讯连接,并接收到来自蓝牙主机的音频数据时执行。在蓝牙终端发送蓝牙广播数据包和音频流的同时,该蓝牙终端还可进行音频数据(即来自蓝牙主机的音频数据)播放。
49.上述组网码由蓝牙终端根据输入装置(例如蓝牙装置上的按键、触控面板、手机或类似电子设备的应用程序等)的输入装置的输入创建,并保存在蓝牙终端上(例如蓝牙芯片的寄存器内),且同一群组中的蓝牙终端具有相同的当前组网码。
50.蓝牙广播数据包可以为蓝牙ble数据包,相应地,组网码可位于蓝牙ble数据包的uuid字段。蓝牙音频流可基于任意现有的蓝牙音频流技术,例如高通的brocast audio技术等,其通过蓝牙、usb audio声卡、line in输入接口(或光纤输入接口、i2s数字音频接口等)实现音频输入广播发射。并且,在音频流发送期间,蓝牙广播数据包可持续性发送,以便同一群组中后续开机的蓝牙终端或者正在监听的蓝牙终端能够获得分享的音频数据。
51.特别地,在执行该步骤之前,可提前设置蓝牙终端的音频分享功能为激活状态,从而在该蓝牙终端在接收到来自蓝牙主机的音频数据时直接进行音频分享。在实际应用中,音频分享功能也可在接收来自蓝牙主机的音频数据过程中激活,例如通过与该蓝牙终端连接的蓝牙主机上的应用程序进行激活,或者通过蓝牙终端上的输入装置的输入按键进行激活。而在蓝牙终端的音频分享功能未激活时,蓝牙终端只作为蓝牙主机的从机,进行蓝牙音频数据的播放,而不创建和发送蓝牙广播数据包和音频流。
52.步骤s12:蓝牙终端在空闲状态下监听蓝牙广播数据包,且在监听到的蓝牙广播数据包中包含与当前的组网码相同的组网码时,通过蓝牙地址接收上述蓝牙广播数据包的发送端所发送的音频流(即音频流和蓝牙广播数据包由同一蓝牙终端发送),并获取音频流中的音频数据。上述空闲状态为蓝牙终端未进行音频数据播放的状态,当然,在实际应用中,空闲状态也可以为蓝牙终端当前未与其他蓝牙设备通信的状态。
53.蓝牙终端在监听到蓝牙广播数据包时,只监听蓝牙广播数据包的组网码所在的字段,例如蓝牙ble广播数据包的uuid字段,当监听到蓝牙广播数据包中的组网码与该蓝牙终端的当前的组网码相同之后,获取蓝牙广播数据包的来源(例如发送该蓝牙广播数据包的蓝牙终端的蓝牙地址),然后再通过蓝牙地址接收蓝牙广播数据包的发送端所发送的音频流,并从音频流中获取音频数据。而对于不包含相同组网码的蓝牙广播数据包,蓝牙终端则直接忽略,并继续监听其他蓝牙终端发送的蓝牙广播数据包。
54.蓝牙终端在执行上述步骤s11和步骤s12时无先后顺序,步骤s11仅在蓝牙终端与手机、音频播放器等主设备通信连接时执行,步骤s12则仅在蓝牙终端处于空闲状态时执行。
55.上述音频数据分享方法,通过组网码对多个蓝牙终端进行组网,即分享音频数据的蓝牙终端在蓝牙广播数据包中增加组网码,接收音频数据的蓝牙终端在监听到具有相同组网码的蓝牙广播数据包后,再接收该蓝牙终端分享的音频数据,从而无需对蓝牙终端进行主设备和从设备的设置,即可实现同一组内多个蓝牙终端之间的音频数据分享。并且,通过组网码,同一组中的任一蓝牙终端都可将音频数据分享给其他蓝牙终端,而无需主、从设备的切换设置。
56.在本发明的一个实施例中,为提高音频数据分享的安全性,上述蓝牙终端还可存储有私有密钥和公开密钥,上述私有密钥和公开密钥可提前存储于蓝牙终端内(例如蓝牙芯片的寄存器内),也可在封装蓝牙广播数据包和发送蓝牙音频流之前生成,且同一群组,即当前的组网码相同的多个蓝牙终端具有相同的私有密钥和公开密钥。
57.相应地,结合图2所示,图1中的步骤s11,即将当前的组网码封装到蓝牙广播数据包并进行广播发送,以及通过蓝牙音频流发送所述音频数据,具体可包括:
58.步骤s111:获取公开密钥,并将当前的组网码以及公开密钥封装到蓝牙广播数据包,以及将该蓝牙广播数据包进行广播发送。例如,当蓝牙广播数据包为蓝牙ble广播数据
包时,当前的组网码可封装到蓝牙ble广播数据包的uuid字段,公开密钥则封装到蓝牙ble广播数据包的其他字段。
59.步骤s112:获取私有密钥,并使用私有密钥对来自蓝牙主机的音频数据进行加密,以及将加密后的音频数据通过蓝牙音频流发送。
60.在该步骤中,可采用des等加密算法对音频数据进行加密。上述加密算法可存储在蓝牙终端内。在实际应用中,上述加密操作可以与蓝牙音频流技术结合,即在进行蓝牙音频流发送过程中对音频数据进行加密。
61.结合图3所示,当分享的音频数据使用私有密钥加密时,图1中的步骤s12,即接收蓝牙广播数据包的发送端所发送的音频流,并从音频流中获取音频数据的步骤具体包括:
62.步骤s121:从监听到的蓝牙广播数据包获取公开密钥以及获取发送蓝牙广播数据包的蓝牙终端的蓝牙地址。具体地,上述公开密钥可通过解析蓝牙广播数据包获取。
63.步骤s122:判断从蓝牙广播数据包中获取的公开密钥是否与蓝牙终端自身的公开密钥相同。若从蓝牙广播数据包中获取的公开密钥与自身的公开密钥相同,则执行步骤s122,否则返回步骤s121,继续从监听到的蓝牙广播数据包获得相关数据。
64.步骤s123:通过蓝牙地址接收蓝牙广播数据包的发送端所发送的音频流,并解析接收的音频流。
65.步骤s124:使用自身的私有密钥对音频流中的音频数据进行解密,并存储或播放解密后的音频数据。
66.通过私有密钥和公开密钥,使得蓝牙终端在分享音频数据时,即使被其他设备截取也无法播放,从而大大提高了蓝牙终端的音频数据分享的安全性。
67.在本发明的一个实施例中,结合图4所示,每一蓝牙终端中的组网码可通过以下方式生成:
68.步骤s131:蓝牙终端获取输入装置的输入(例如输入动作),上述输入装置可以为蓝牙终端上的机械按键、触控板或类似用于调节蓝牙终端输出音量、功能等的结构,或者与蓝牙终端相连的手机应用程序等。
69.步骤s132:根据输入装置的输入生成分享码,并对分享码执行第一信息摘要算法获取中间码。
70.上述分享码可直接由输入装置的输入构成,也可由蓝牙终端中存储的、与输入装置的输入对应的数据构成(例如蓝牙终端在出厂时预存有多个数据,每一数据与输入装置的一个输入对应),也可由以上两者的组合构成。
71.第一信息摘要算法包括具体可n种哈希算法,n为大于或等于2的整数,在该步骤中,使用n种哈希算法分别对分享码进行哈希运算,并将n种哈希算法的运算结果组合形成中间码。例如,第一信息摘要算法包括四种哈希算法,每一哈希算法将分享码转换为一个四字节的数据,再将四个四字节数据组合形成一个十六字节数据,中间码即由该十六字节数据构成。
72.步骤s133:根据输入装置的输入获取第一预存字符串,并使用第一预存字符串和第一加密算法对中间码进行加密运算,获得组网码。
73.上述第一预存字符串同样存储在蓝牙终端内,例如在蓝牙终端出厂时预存多个第一预存字符串,且每一第一预存字符串与输入装置的一个输入对应,可通过输入装置的不
同输入切换选择不同的第一字符串。
74.第一加密算法可采用rc4算法或其他类似的加密算法,该第一加密算法包括两个参数,即第一预存字符串和中间码,经过加密计算生成组网码(例如十六字节数据)。
75.通过上述方式形成的组网码,可大大提高蓝牙终端群组的安全性,避免非授权的蓝牙终端通过组网码加入到群组中。
76.在本发明的一个实施例中,结合图5所示,上述私有密钥和公开密钥可通过以下方式生成:
77.步骤s141:获取输入装置的输入。该输入装置的输入与上述步骤s131类似,在此不再赘述。
78.步骤s142:根据输入装置的输入获取第二预存字符串,并对分享码和第二预存字符串执行第二加密算法获得私有密钥。
79.上述第二预存字符串存储在蓝牙终端内,例如在蓝牙终端出厂时预存多个第二预存字符串,且每一第二预存字符串与输入装置的一个输入对应,可通过输入装置的不同输入切换选择不同的第二字符串。上述分享码可通过上述步骤s132获取。
80.第二加密算法可采用rc4算法或类似加密算法,该第二加密算法包括一个参数,即第二预存字符串,经过加密计算生成私有密钥。该私有密钥主要用于对待分享的音频数据进行加密运算。
81.步骤s143:对私有密钥执行第二信息摘要算法获得公开密钥。
82.上述第二信息摘要算法可采用包括哈希算法,其可将私有密钥转换为公开密钥。该公开密钥主要用于核对解码蓝牙终端的待分享音频数据的私有密钥。
83.在实际应用中,也可直接根据输入装置的输入生成组网码、公开密钥和私有密钥,而不采用相应的算法进行加密。该方式虽然简单,但安全性相对较低。
84.在本发明的一个实施例中,蓝牙终端可包括多个组网码(例如,每一组网码通过图4所示的步骤生成)。相应地,本发明的方法还包括由蓝牙终端执行的以下步骤:根据输入装置输入的指令(例如该指令可由按键组合构成)从多个组网码中选择其中的一个组网码作为当前的组网码。通过上述方式,使得蓝牙终端可加入到不同的蓝牙终端群组,扩展了蓝牙终端的应用。
85.相应地,蓝牙终端包括多个私有密钥和多个公开密钥(例如通过图6所示的步骤生成),每一组网码对应一个私有密钥和一个公开密钥。
86.相应地,在蓝牙终端作为主设备进行音频数据分享时,先获取与当前的组网码对应的公开密钥,并将当前的组网码以及公开密钥封装到蓝牙广播数据包,然后获取与当前的组网码对应的私有密钥,并使用私有密钥对音频数据进行加密,以及将加密后的音频数据通过音频流发送。
87.在蓝牙终端作为从设备获取分享的音频数据时,先从监听到的蓝牙广播数据包获取公开密钥以及蓝牙广播数据包相同的蓝牙终端的蓝牙地址,在蓝牙广播数据包中的公开密钥与蓝牙终端的当前的组网码对应的公开密钥相同时,通过蓝牙地址接收蓝牙广播数据包的发送端所发送的音频流,并使用与当前的组网码对应的私有密钥对音频流中的音频数据进行解密。
88.本发明还提供一种蓝牙终端,结合图6所示,该蓝牙终端6包括存储器61和处理器
62,其中,存储器61中存储有可在处理器62中执行的计算机程序,且处理器62执行所述计算机程序时实现如上所述的音频数据分享方法的步骤。
89.本实施例中的蓝牙终端6与上述图1

5对应实施例中的音频数据分享方法属于同一构思,其具体实现过程详细见对应的方法实施例,且方法实施例中的技术特征在本设备实施例中均对应适用,这里不再赘述。
90.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如上所述的音频数据分享方法的步骤。
91.本实施例中的计算机可读存储介质与上述图1

5对应实施例中的音频数据分享方法属于同一构思,其具体实现过程详细见对应的方法实施例,且方法实施例中的技术特征在本存储介质实施例中均对应适用,这里不再赘述。
92.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
93.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成。实施例中的各功能单元、模块可以集成在一个处理器中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
94.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
95.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
96.另外,在本技术各个实施例中的各功能单元可以集成在一个处理器中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
97.所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或界面切换设备、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read

only memory,rom)、随机存取存储器
(random access memory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
98.上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。此外,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献