mirror of
https://gitee.com/openharmony/applications_app_samples
synced 2024-11-30 04:01:15 +00:00
7e4186d7d2
Signed-off-by: yeyedeshen <yangxin181@huawei.com> |
||
---|---|---|
.. | ||
AppScope | ||
entry | ||
hvigor | ||
screenshot/devices | ||
.gitignore | ||
build-profile.json5 | ||
hvigorfile.ts | ||
hvigorw | ||
hvigorw.bat | ||
oh-package.json5 | ||
ohosTest.md | ||
README.md |
音频管理(仅对系统应用开放)
介绍
此Sample展示 空间音频API 的用法,相关API包括:
- isSpatializationSupported(): 查询系统是否支持空间音频,
- isHeadTrackingSupported():查询系统是否支持头动跟踪,
- isSpatializationSupportedForDevice(deviceDescriptor: AudioDeviceDescriptor):查询设备是否支持空间音频,
- isHeadTrackingSupportedForDevice(deviceDescriptor: AudioDeviceDescriptor):查询设备是否支持头动跟踪,
- isSpatializationEnabled():查询空间音频是否开启,
- isHeadTrackingEnabled(): 查询头动跟踪是否开启,
- setSpatializationEnabled(enable: boolean):设置空间音频开启状态,
- setHeadTrackingEnabled(enable: boolean):设置头动跟踪开启状态,
实现效果如下:
效果预览
主页 | 空间音频界面 | 空间音频(支持场景化) |
---|---|---|
使用说明
-
启动应用,在主页卡片中选择空间音频卡片,进入空间音频演示
-
在上部的两个音乐播放器分别可以播放2.0和5.1的音源,体现了音频框架对多声道播放的支持
-
下方的空间音频UX,具体的界面会随音频播放的设备而变化:外放及普通耳机只会启用关闭模式;支持空间音频和头动追踪的耳机会使三个按钮全部可选。
-
点击三个按钮,分别会启用”关闭空间音频“,”启用空间音频固定模式“,”启用空间音频头动追踪模式“
-
当前版本,音频管家判断耳机支持空间音频会显示三态按钮UX,否则页面只有关闭模式使能。
-
当空间音频可以使用时,可以通过空间模式卡片选择场景。
工程目录
entry/src/main/ets/
|---pages
|---|---Index.ets //首页
|---|---SpatialAudio.ets //空间音频页面
相关权限
蓝牙使用权限:ohos.permission.USE_BLUETOOTH 音效管理权限:ohos.permission.MANAGE_SYSTEM_AUDIO_EFFECTS
具体实现
- 播放立体声多声道音频文件,调用空间音频API查询设置开关状态的内容在SpatialAudio.ets
- 在createAudioRenderer(options: AudioRendererOptions)入参AudioRendererOptions中增加AudioChannelLayout字段指明音频文件声道布局,以辅助多声道音频文件播放
- 使用isSpatializationSupported(), isHeadTrackingSupported(), isSpatializationSupportedForDevice(AudioDeviceDescriptor), isHeadTrackingSupportedForDevice(AudioDeviceDescriptor)四个接口查询系统和设备是否支持空间音频和头动跟踪,根据查询结果设置用户UX界面状态:只有系统和设备全都支持某功能,其按钮状态才不会被置灰。
- 使用isSpatializationEnabled(), isHeadTrackingEnabled()在每次UX界面出现时查询当前空间音频和头动跟踪是否开启,同步在其他app对开关状态的改动
- 使用setSpatializationEnabled(enable: boolean), setHeadTrackingEnabled(enable: boolean),在点击UX按钮时设置空间音频和头动跟踪状态。
- 使用setSpatializationSceneType(spatializationSceneType: AudioSpatializationSceneType),设置空间模式
- 使用getSpatializationSceneType(),查询当前的空间模式
约束与限制
1.本示例仅支持标准系统上运行。
2.本示例为Stage模型,仅支持API12版本SDK。
3.本示例需要使用DevEco Studio 版本号(3.1.1Release)版本才可编译运行。
4.本示例需要使用系统权限的系统接口。使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考替换指南。
5.本示例涉及系统接口,需要配置系统应用签名,可以参考特殊权限配置方法 ,把配置文件中的“app-feature”字段信息改为“hos_system_app”,再将“apl”字段信息改为“system_core”。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/SystemFeature/Media/Audio/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master