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|  |  | 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```