• Home
Name Date Size #Lines LOC

..--

AppScope/22-Oct-2025-6260

entry/22-Oct-2025-1,5451,418

hvigor/22-Oct-2025-2019

library/22-Oct-2025-4523

screenshots/device/22-Oct-2025-

.gitignoreD22-Oct-2025119 1111

README.mdD22-Oct-20254.2 KiB7455

build-profile.json5D22-Oct-20251.2 KiB5150

hvigorfile.tsD22-Oct-2025826 225

hvigorwD22-Oct-20252.1 KiB6328

hvigorw.batD22-Oct-20252.1 KiB7960

oh-package.json5D22-Oct-2025827 2826

ohosTest.mdD22-Oct-20255 KiB3428

README.md

1# 音振
2
3### 介绍
4
5本示例主要展示了音振协同功能,使用[@ohos.multimedia.audioHaptic](https://docs.openharmony.cn/pages/v4.1/zh-cn/application-dev/reference/apis-audio-kit/js-apis-audioHaptic.md)等接口提供播放音频同时伴随振动的功能,可用于同时需要声音与振动的场景。
6
7### 效果预览
8
9| 主页                                     | 音振协同播放类型选择页面 | 音振协同播放铃声页面 |
10|----------------------------------------|-----------------------------------------|------------------------------------------------------|
11| ![Index](screenshots/device/index.jpeg) | ![AudioHaptic](screenshots/device/audioHaptic.jpeg) |![AudioHaptic](screenshots/device/play_ringtone.jpeg) |
12
13使用说明
14
15注意:当选择任意一种类型开始播放时,其它按钮均不可点击
16
171. 在主界面点击“音振协同”按钮,进入音振协同播放类型选择页面
182. 在音振协同播放类型选择页面,展示音振协同播放类型
193. 在音振协同播放类型选择页面,点击通知类型播放器,通知类型开始播放并振动
204. 在音振协同播放类型选择页面,点击铃声类型播放器,铃声类型开始播放并振动
215. 在音振协同播放类型选择页面,点击闹钟类型播放器,闹钟类型开始播放并振动
226. 在音振协同播放类型选择页面,点击“音频静音”(未点击振动静音),选择铃声类型播放器进行播放,铃声类型开始音频静音同时振动播放,直至播放自动结束,恢复暂停状态
237. 在音振协同播放类型选择页面,点击“振动静音”(未点击音频静音),选择铃声类型播放器进行播放,铃声类型开始无振动同时有声播放,直至播放自动结束,恢复暂停状态
248. 在音振协同播放类型选择页面,点击“振动静音”,点击“音频静音”,选择铃声类型播放器进行播放,铃声类型开始无振动同时无声播放,直至播放自动结束,恢复暂停状态
259. 音振协同播放选择页面,点击“返回”按钮,可返回主页
26
27### 工程目录
28
29```
30entry/src/main/ets/
31|---pages
32|---|---Index.ets                           //首页
33|---|---AudioHaptics.ets                    //音振协同页面
34library/
35|---Logger.ts                               //日志打印封装
36```
37
38### 具体实现
39* 音振协同功能都封装AudioHaptics,源码参考:[AudioHaptic.ets](entry/src/main/ets/pages/AudioHaptic.ets)
40    * 使用audioHaptic.getAudioHapticManager()接口获取音振管理器。
41    * 使用audioHapticManager.registerSource(audioUri, hapticUri)接口注册音频和振动资源的Uri,返回注册资源的source id。
42    * 使用使用audioHapticManager.setStreamUsage()接口给指定source id设置音频使用类型。
43    * 使用audioHapticManager.createPlayer(id, options)创建不同类型资源的音振播放器。
44    * 使用audioHapticManager.setStreamUsage(id, streamUsage )分别设置通知类型、铃声类型和闹钟类型的使用类型。
45    * 对每个player对象都监听AudioHapticPlayer .on('endOfStream'),收到回调时,说明当前类型资源播放结束,恢复暂停播放状态,据此更新UI状态。
46    * 使用audioHapticManager.start()方法进行对指定类型音频开始播放处理。
47    * 使用audioHapticManager.stop()进行指定类型音频的停止播放处理。
48
49### 相关权限
50
51允许应用控制马达振动:[ohos.permission.VIBRATE](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md#ohospermissionvibrate)
52
53### 依赖
54
55不涉及。
56
57### 约束与限制
58
591. 本示例仅支持有马达的设备上运行;
602. 本示例仅支持标准系统上运行,支持设备:目前该功能仅支持部分机型;
613. 本示例仅支持API11版本SDK,SDK版本号(API Version 11 Release),镜像版本号(4.0Release);
624. 本示例需要使用DevEco Studio 版本号(4.0Release)才可编译运行;
63
64### 下载
65
66如需单独下载本工程,执行如下命令:
67
68```
69git init
70git config core.sparsecheckout true
71echo code/BasicFeature/Media/AudioHaptic > .git/info/sparse-checkout
72git remote add origin https://gitee.com/openharmony/applications_app_samples.git
73git pull origin master
74```