一种用于XR的音频播放方法及装置、电子设备和存储介质与流程
- 国知局
- 2024-09-05 14:52:56
本公开涉及计算机,尤其涉及一种用于xr的音频播放方法及装置、电子设备和存储介质。
背景技术:
1、在云扩展现实(extended reality,xr)技术中,音频捕获采用平台相关的应用程序编程接口(application programming interface,api),在不同的平台使用各自的音频捕获系统底层api。比如windows系统的directsound、wasapi、wavex api等,linux系统的alsa、pulseaudio等。
2、针对xr的云端音频捕获系统,云端的服务端在不同平台运行时依赖平台的api,以采集声卡设备输出的音频数据,但是不同平台提供的api不同,导致无法跨平台的音频捕获。
技术实现思路
1、本公开提出了一种用于xr的音频播放技术方案。
2、根据本公开的一方面,提供了一种用于xr的音频播放方法,应用于服务端,包括:
3、获取服务端可用的音频捕获插件和当前平台中的目标声卡设备,所述服务端设置有适配于多个平台的声卡设备的多种音频捕获插件;
4、确定与所述目标声卡设备匹配的目标音频捕获插件;
5、基于所述目标音频捕获插件,获取所述目标声卡设备输出的音频数据;
6、对所述音频数据进行处理得到目标音频数据,并将所述目标音频数据发送给终端设备,所述终端设备用于对所述目标音频数据进行播放。
7、在一种可能的实现方式中,所述基于所述目标音频捕获插件,获取所述目标声卡设备输出的音频数据,包括:
8、基于所述目标音频捕获插件,通过与所述目标音频捕获插件对应的接口,获取所述目标声卡设备输出的音频数据。
9、在一种可能的实现方式中,所述基于所述目标音频捕获插件,获取所述目标声卡设备输出的音频数据,包括:
10、基于所述目标音频捕获插件,根据目标进程的标识,通过与所述目标音频捕获插件对应的接口,获取所述目标声卡设备输出的目标进程的音频数据。
11、在一种可能的实现方式中,所述对所述音频数据进行处理得到目标音频数据,并将所述目标音频数据发送给终端设备,包括:
12、接收客户端发送的时间戳,所述时间戳用于指示客户端发送所述时间戳的时刻;
13、将所述时间戳添加到所述音频数据中,并将添加时间戳后的目标音频数据发送给终端设备。
14、在一种可能的实现方式中,所述服务端为xr服务端,所述时间戳为xr客户端中用来标识位姿的时间戳,以指示目标声卡设备播放与位姿对应的音频。
15、在一种可能的实现方式中,所述对所述音频数据进行处理得到目标音频数据,并将所述目标音频数据发送给终端设备,包括:
16、根据所述终端设备的应用场景对音质和延迟的需求,确定与所述应用场景匹配的编码方式;
17、利用所述编码方式对所述目标音频数据进行编码,得到目标音频数据,并将所述目标音频数据发送给终端设备。
18、在一种可能的实现方式中,所述根据所述终端设备的应用场景对音质和延迟的需求,确定与所述应用场景匹配的编码方式,包括;
19、在所述应用场景的音质需求高于延迟需求的情况下,采用压缩比低于设定压缩阈值的编码方式;
20、在所述应用场景的音质需求低于延迟需求的情况下,采用压缩比高于设定压缩阈值的编码方式。
21、在一种可能的实现方式中,所述基于所述目标音频捕获插件,获取所述目标声卡设备输出的音频数据,以及所述对所述音频数据进行处理得到目标音频数据,并将所述目标音频数据发送给终端设备,包括:
22、创建构建音频捕获管道;
23、将所述目标音频捕获插件作为所述音频捕获管道的输入组件,并设置所述输入组件的采集对象为目标声卡设备;
24、在输入组件之后添加音频处理组件以及音频输出组件;
25、执行所述音频捕获管道中的任务,以获取所述目标声卡设备输出的音频数据,以及对所述音频数据进行处理得到目标音频数据,并将所述目标音频数据发送给终端设备。
26、根据本公开的一方面,提供了一种用于xr的音频播放方法,应用于客户端,包括:
27、创建音频播放管道;
28、接收服务端发送的目标音频数据,并提取所述目标音频数据中的时间戳;
29、在当前时刻和所述时间戳的差在设定阈值范围内的情况下,将所述目标音频数据输入回调函数传送给所述音频播放管道,执行所述音频播放管道中的任务,以对所述目标音频数据进行播放。
30、在一种可能的实现方式中,所述客户端为扩展现实xr客户端,所述服务端为xr服务端;
31、所述时间戳为xr客户端中用来标识位姿的时间戳,以指示目标声卡设备播放与位姿对应的音频。
32、根据本公开的一方面,提供了一种用于xr的音频播放装置,应用于服务端,包括:
33、设备获取单元,用于获取服务端可用的音频捕获插件和当前平台中的目标声卡设备,所述服务端设置有适配于多个平台的声卡设备的多种音频捕获插件;
34、插件确定单元,用于确定与所述目标声卡设备匹配的目标音频捕获插件;
35、音频获取单元,用于基于所述目标音频捕获插件,获取所述目标声卡设备输出的音频数据;
36、音频处理单元,用于对所述音频数据进行处理得到目标音频数据,并将所述目标音频数据发送给终端设备,所述终端设备用于对所述目标音频数据进行播放。
37、在一种可能的实现方式中,所述音频获取单元,用于基于所述目标音频捕获插件,通过与所述目标音频捕获插件对应的接口,获取所述目标声卡设备输出的音频数据。
38、在一种可能的实现方式中,所述音频获取单元,用于基于所述目标音频捕获插件,根据目标进程的标识,通过与所述目标音频捕获插件对应的接口,获取所述目标声卡设备输出的目标进程的音频数据。
39、在一种可能的实现方式中,所述音频处理单元,用于:
40、接收客户端发送的时间戳,所述时间戳用于指示客户端发送所述时间戳的时刻;
41、将所述时间戳添加到所述音频数据中,并将添加时间戳后的目标音频数据发送给终端设备。
42、在一种可能的实现方式中,所述服务端为xr服务端,所述时间戳为xr客户端中用来标识位姿的时间戳,以指示目标声卡设备播放与位姿对应的音频。
43、在一种可能的实现方式中,所述音频处理单元,用于:
44、根据所述终端设备的应用场景对音质和延迟的需求,确定与所述应用场景匹配的编码方式;
45、利用所述编码方式对所述目标音频数据进行编码,得到目标音频数据,并将所述目标音频数据发送给终端设备。
46、在一种可能的实现方式中,所述音频处理单元,用于:
47、在所述应用场景的音质需求高于延迟需求的情况下,采用压缩比低于设定压缩阈值的编码方式;
48、在所述应用场景的音质需求低于延迟需求的情况下,采用压缩比高于设定压缩阈值的编码方式。
49、在一种可能的实现方式中,所述音频获取单元,用于:创建构建音频捕获管道;将所述目标音频捕获插件作为所述音频捕获管道的输入组件,并设置所述输入组件的采集对象为目标声卡设备;在输入组件之后添加音频处理组件以及音频输出组件;
50、所述音频处理单元,用于执行所述音频捕获管道中的任务,以获取所述目标声卡设备输出的音频数据,以及对所述音频数据进行处理得到目标音频数据,并将所述目标音频数据发送给终端设备。
51、根据本公开的一方面,提供了一种用于xr的音频播放装置,应用于客户端,包括:
52、管道创建单元,用于创建音频播放管道;
53、音频接收单元,用于接收服务端发送的目标音频数据,并提取所述目标音频数据中的时间戳;
54、音频播放单元,用于在当前时刻和所述时间戳的差在设定阈值范围内的情况下,将所述目标音频数据输入回调函数传送给所述音频播放管道,执行所述音频播放管道中的任务,以对所述目标音频数据进行播放。
55、在一种可能的实现方式中,所述客户端为扩展现实xr客户端,所述服务端为xr服务端;
56、所述时间戳为xr客户端中用来标识位姿的时间戳,以指示目标声卡设备播放与位姿对应的音频。
57、根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
58、根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
59、在本公开实施例中,通过获取服务端可用的音频捕获插件和当前平台中的目标声卡设备,所述服务端设置有适配于多个平台的声卡设备的多种音频捕获插件;从所述多种音频捕获插件中,确定与所述目标声卡设备匹配的目标音频捕获插件;基于所述目标音频捕获插件,获取所述目标声卡设备输出的音频数据;对所述音频数据进行处理得到目标音频数据,并将所述目标音频数据发送给终端设备,所述终端设备用于对所述目标音频数据进行播放。由此,通过从多种音频捕获插件中,确定与目标声卡设备匹配的目标音频捕获插件,并基于目标音频捕获插件,获取目标声卡设备输出的音频数据,使得服务端能够适用于多种不同平台,实现在xr音乐播放场景中跨平台地捕获声卡设备输出的音频。
60、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
本文地址:https://www.jishuxx.com/zhuanli/20240905/288687.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。