# 如何实现应用内提示音：系统通知与自定义消息场景

#### 问题现象

在App中使用WebSocket，当消息通过WebSocket推送过来时，有一个系统提示音播放，请教下有没有相关API可以使用，而无需自己提供音频？

#### 背景知识

*   Notification Kit（用户通知服务）：可借助Notification Kit将应用产生的通知直接在客户端本地推送给用户，本地通知根据通知类型及发布场景会产生对应的铃声、震动、横幅、锁屏、息屏、通知栏提醒和显示。
*   SoundPool：SoundPool可以实现简单的提示音，当设备接收到新消息时，会发出短促的“滴滴”声。

#### 解决方案

通过以下两种方式播放提示音：

*   使用SoundPool播放短音频(ArkTS)以实现一些急促简短的音效（如相机快门音效、系统通知音效等）播放。详情可见运行示例工程。
*   使用NotificationRequest的sound字段设置自定义铃声文件。该文件放在resources/rawfile目录下，支持m4a、aac、mp3、ogg、wav、flac、amr等格式。当不设置sound字段时，设备接收新消息时铃声会默认播放系统通知提示音。

#### 常见FAQ

Q：播放短促提示音（如点赞、收藏、新消息等场景的提示音或音效），应该如何处理？

A：

*   推荐优先使用SoundPool，若应用使用SoundPool开发音频播放功能，且StreamUsage指定为STREAM\_USAGE\_MUSIC、STREAM\_USAGE\_MOVIE、STREAM\_USAGE\_AUDIOBOOK等类型，播放短音，则其申请焦点时默认为并发模式，不会影响其他音频。
*   若应用不希望使用SoundPool，并且当前使用的流类型会打断其他音频播放，推荐使用音频会话策略（AudioSessionStrategy）相关接口，指定为CONCURRENCY\_MIX\_WITH\_OTHERS策略。