• Home
Name Date Size #Lines LOC

..--

AppScope/12-May-2024-5856

entry/12-May-2024-1,6161,447

hvigor/12-May-2024-2019

screenshot/devices/12-May-2024-

.gitignoreD12-May-2024119 1111

README.mdD12-May-20244.3 KiB7853

build-profile.json5D12-May-20241 KiB4342

hvigorfile.tsD12-May-2024800 181

hvigorwD12-May-20242.1 KiB6228

hvigorw.batD12-May-20242.1 KiB8060

oh-package.json5D12-May-2024228 1312

ohosTest.mdD12-May-20241.7 KiB1715

README.md

1# 音频管理(仅对系统应用开放)
2
3### 介绍
4
5此Sample展示
6[空间音频API](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.multimedia.audio.d.ts) 的用法,相关API包括:
71. isSpatializationSupported(): 查询系统是否支持空间音频,
82. isHeadTrackingSupported():查询系统是否支持头动跟踪,
93. isSpatializationSupportedForDevice(deviceDescriptor: AudioDeviceDescriptor):查询设备是否支持空间音频,
104. isHeadTrackingSupportedForDevice(deviceDescriptor: AudioDeviceDescriptor):查询设备是否支持头动跟踪,
115. isSpatializationEnabled():查询空间音频是否开启,
126. isHeadTrackingEnabled(): 查询头动跟踪是否开启,
137. setSpatializationEnabled(enable: boolean):设置空间音频开启状态,
148. setHeadTrackingEnabled(enable: boolean):设置头动跟踪开启状态,
15
16实现效果如下:
17
18### 效果预览
19| 主页                                     | 空间音频界面                                  |
20|----------------------------------------|-----------------------------------------|
21| ![index](screenshot/devices/index.png) | ![main](screenshot/devices/spatial.png) |
22
23使用说明
24
251. 启动应用,在主页卡片中选择空间音频卡片,进入空间音频演示
26
272. 在上部的两个音乐播放器分别可以播放2.0和5.1的音源,体现了音频框架对多声道播放的支持
28
293. 下方的空间音频UX,具体的界面会随音频播放的设备而变化:外放及普通耳机只会启用关闭模式;支持空间音频和头动追踪的耳机会使三个按钮全部可选。
30
314. 点击三个按钮,分别会启用”关闭空间音频“,”启用空间音频固定模式“,”启用空间音频头动追踪模式“
32
335. 当前版本对是否支持空间音频的判断仍简单,即当前发声设备具备不为空的mac地址就会显示三态按钮UX。
34
35### 工程目录
36
37```
38entry/src/main/ets/
39|---pages
40|---|---Index.ets                           //首页
41|---|---SpatialAudio.ets                    //空间音频页面
42```
43
44### 相关权限
45
46蓝牙使用权限:ohos.permission.USE_BLUETOOTH
47
48### 具体实现
49
50* 播放立体声多声道音频文件,调用空间音频API查询设置开关状态的内容在[SpatialAudio.ets](entry/src/main/ets/pages/SpatialAudio.ets)
51    * 在createAudioRenderer(options: AudioRendererOptions)入参AudioRendererOptions中增加AudioChannelLayout字段指明音频文件声道布局,以辅助多声道音频文件播放
52    * 使用isSpatializationSupported(), isHeadTrackingSupported(), isSpatializationSupportedForDevice(AudioDeviceDescriptor), isHeadTrackingSupportedForDevice(AudioDeviceDescriptor)四个接口查询系统和设备是否支持空间音频和头动跟踪,根据查询结果设置用户UX界面状态:只有系统和设备全都支持某功能,其按钮状态才不会被置灰。
53    * 使用isSpatializationEnabled(), isHeadTrackingEnabled()在每次UX界面出现时查询当前空间音频和头动跟踪是否开启,同步在其他app对开关状态的改动
54    * 使用setSpatializationEnabled(enable: boolean), setHeadTrackingEnabled(enable: boolean),在点击UX按钮时设置空间音频和头动跟踪状态。
55
56### 约束与限制
57
581.本示例仅支持标准系统上运行。
59
602.本示例为Stage模型,仅支持API11版本SDK。
61
623.本示例需要使用DevEco Studio 版本号(3.1.1Release)版本才可编译运行。
63
644.本示例需要使用系统权限的系统接口。使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/faqs/full-sdk-switch-guide.md)65
665.本示例涉及系统接口,需要配置系统应用签名,可以参考[特殊权限配置方法](https://gitee.com/openharmony/docs/blob/eb73c9e9dcdd421131f33bb8ed6ddc030881d06f/zh-cn/device-dev/subsystems/subsys-app-privilege-config-guide.md/) ,把配置文件中的“app-feature”字段信息改为“hos_system_app”,再将“apl”字段信息改为“system_core”。
67
68### 下载
69
70如需单独下载本工程,执行如下命令:
71
72```
73git init
74git config core.sparsecheckout true
75echo code/SystemFeature/Media/Audio/ > .git/info/sparse-checkout
76git remote add origin https://gitee.com/openharmony/applications_app_samples.git
77git pull origin master
78```