# AudioHapticSoundVibrationCollaboration **Repository Path**: ywcoder/audio-haptic-sound-vibration-collaboration ## Basic Information - **Project Name**: AudioHapticSoundVibrationCollaboration - **Description**: 该示例展示了AudioHaptic音振协同播放 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-01-13 - **Last Updated**: 2026-01-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 实现音振协同播放功能 ## 项目简介 本示例基于HarmonyOS媒体子系统,实现了音振协同播放的功能。其主要以铃声播放振动、闹钟播放振动、消息通知低时延振动、系统按键反馈低时延振动4个场景来展示如何实现音振协同播放的功能,并配置了音频静音、振动静音等子功能。 ## 效果预览 | 应用主界面 | 铃声播放振动 | 系统按键反馈低时延振动 | |-------------------------------------|-------------------------------------|-------------------------------------| | ![image](screenshots/effect_01.png) | ![image](screenshots/effect_02.png) | ![image](screenshots/effect_03.png) | ## 使用说明 ### 铃声播放振动 / 闹钟播放振动 / 消息通知低时延振动 1. 点击首页对应按钮入口,进入二级页面: 2. 点击播放按钮,同时播放音频并触发振动; 3. 点击暂停按钮,停止音频播放并关闭振动; 4. 切换音频静音开关:开启后,点击播放仅触发振动(无声音); 5. 切换振动静音开关:开启后,点击播放仅播放音频(无振动)。 ### 系统按键反馈低时延振动 1. 点击首页对应按钮入口,进入二级页面: 2. 切换系统按键反馈振动开关,然后点击底部按钮体验效果。当开关开启时,点击按钮触发振动;开关关闭时,点击无振动反馈。 ## 工程目录 ``` ├───entry/src/main/ets │ ├───common │ │ └───AudioHaptic.ets // 音振播放控制器 │ ├───constants │ │ └───CommonConstants.ets // 常量 │ ├───entryability │ │ └───EntryAbility.ets // Ability的生命周期回调内容 │ ├───entrybackupability │ │ └───EntryBackupAbility.ets // 程序备份和恢复 │ ├───pages │ │ └───Index.ets // 首页 │ └───view │ ├───AlarmClockPlaybackVibration.ets // 闹钟播放振动 │ ├───MessageNotificationVibration.ets // 消息通知低时延振动 │ ├───RingtonePlaybackVibration.ets // 铃声播放振动 │ └───SystemKeyFeedbackVibration.ets // 系统按键反馈低时延振动 └───entry/src/main/resources // 资源目录 ``` ## 具体实现 1. 导入audioHaptic音振协同模块、vibrator振动模块。 2. 使用audioHaptic.getAudioHapticManager()获取音振管理器。 3. 使用registerSourceFromFd()注册音频和振动资源,获取已注册资源的source id。 4. 通过已注册资源的source id设置音频时延模式和音频流使用类型,方法分别为setAudioLatencyMode()和setStreamUsage。 5. 设置音振播放器选项AudioHapticPlayerOptions,通过audioHapticManager.createPlayer创建音振播放器。 6. 使用音振播放器的start()和stop()方法分别进行播放和停止。 7. 使用on('endOfStream')监听流结束事件,使用on('audioInterrupt')监听音频中断事件。 8. 使用vibrator.startVibration开启系统按键反馈低时延振动,使用vibrator.stopVibration关闭系统按键反馈低时延振动。 ## 相关权限 1. 允许应用控制马达振动:ohos.permission.VIBRATE ## 依赖 不涉及 ## 约束与限制 1. 本示例仅支持标准系统上运行,支持设备:直板机。 2. HarmonyOS系统:HarmonyOS 6.0.1 Release及以上。 3. DevEco Studio版本:DevEco Studio 6.0.1 Release及以上。 4. HarmonyOS SDK版本:HarmonyOS 6.0.1 Release SDK及以上。