<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>提示音 on 栈外随记</title>
    <link>https://btio.cn/tags/%E6%8F%90%E7%A4%BA%E9%9F%B3/</link>
    <description>Recent content in 提示音 on 栈外随记</description>
    <image>
      <title>栈外随记</title>
      <url>https://btio.cn/images/logo-arong.svg</url>
      <link>https://btio.cn/images/logo-arong.svg</link>
    </image>
    <generator>Hugo</generator>
    <language>zh-CN</language><lastBuildDate>Tue, 11 Aug 2026 00:00:00 +0800</lastBuildDate>
    <atom:link href="https://btio.cn/tags/%E6%8F%90%E7%A4%BA%E9%9F%B3/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>【中科蓝讯】TWS 耳机提示音问题单复盘</title>
      <link>https://btio.cn/posts/2026/08/11/%E4%B8%AD%E7%A7%91%E8%93%9D%E8%AE%AFtws-%E8%80%B3%E6%9C%BA%E6%8F%90%E7%A4%BA%E9%9F%B3%E9%97%AE%E9%A2%98%E5%8D%95%E5%A4%8D%E7%9B%98/</link>
      <pubDate>Tue, 11 Aug 2026 00:00:00 +0800</pubDate>
      <guid>https://btio.cn/posts/2026/08/11/%E4%B8%AD%E7%A7%91%E8%93%9D%E8%AE%AFtws-%E8%80%B3%E6%9C%BA%E6%8F%90%E7%A4%BA%E9%9F%B3%E9%97%AE%E9%A2%98%E5%8D%95%E5%A4%8D%E7%9B%98/</guid>
      <description>&lt;h2 id=&#34;section-1&#34;&gt;一、本文要解决哪些提示音问题&lt;/h2&gt;
&lt;p&gt;这篇文章记录的是我对 TWS 耳机提示音问题的整理和理解。我结合问题单、原厂 SDK 以及实际修改点，把零散的问题按现象和根因重新归类，并从业务请求、队列、播放到状态恢复，整理出一套排查思路。&lt;/p&gt;
&lt;p&gt;具体问题的修改结论，以问题单和现有代码记录为准；没有明确依据的地方，我不额外延伸。理解提示音问题，可以先把流程分成四步：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. 业务事件发生
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. 提示音请求进入队列
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. 提示音开始播放
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4. 播放结束，恢复音频状态
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;有些提示音只是给用户提供声音反馈，有些提示音还和业务回调绑定在一起。原厂 SDK 中，ANC 和音乐/游戏模式会在提示音播放完成后更新；接听、拒接和回拨也会在提示音相关回调中触发。&lt;/p&gt;
&lt;p&gt;所以排查时不能只看“有没有声音”，还要看对应的业务回调是否按预期执行。遇到问题时，先分清是“声音没有正常播放”，还是“提示音对应的业务动作没有执行”：前者检查资源、音量和播放链路，后者检查业务请求和回调。&lt;/p&gt;
&lt;p&gt;本文主要围绕以下 7 类问题展开，后文会分别说明问题现象、原因和排查思路：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;#section-2&#34;&gt;业务已经发生，提示音却没响或播错&lt;/a&gt;
；&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#section-3&#34;&gt;提示音太大、太小，或换资源后异常&lt;/a&gt;
；&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#section-4&#34;&gt;连续或快速操作后，提示音消失、滞后或重复&lt;/a&gt;
；&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#section-5&#34;&gt;提示音响错耳朵&lt;/a&gt;
；&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#section-6&#34;&gt;双耳提示音不同步，或音乐恢复不同步&lt;/a&gt;
；&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#section-7&#34;&gt;提示音响完，音乐却出现杂音或无声&lt;/a&gt;
；&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#section-8&#34;&gt;来电和双连接时，响铃状态混乱&lt;/a&gt;
。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;section-2&#34;&gt;二、业务已经发生，提示音却没响或播错&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;问题现象 1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;电量已经低于 10%，却没有低电提示音。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;排查思路 1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;先确认低电条件是否真的触发。比如电量从 11% 直接变成 9% 时，可能跳过“等于 10%”的判断，后面就不会提交低电提示音。确认条件后，再检查代码是否走到提示音调用位置。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;问题现象 2&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;来电双击已经接听，却播放成三击提示音。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;排查思路 2&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这个问题说明提示音请求已经提交，但事件和提示音没有正确对应。重点检查双击事件最终传入的提示音资源编号，确认是否误用了三击提示音。&lt;/p&gt;
&lt;p&gt;这类问题可以按“业务条件、提示音调用、资源编号”的顺序检查。前三步没有问题后，再进入队列和播放流程。&lt;/p&gt;
&lt;h2 id=&#34;section-3&#34;&gt;三、提示音太大、太小，或换资源后异常&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;问题现象 1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;通过 App 的“查找耳机”功能播放正常，但在手机设置中的 Google“查找设备”页面，点击“让耳机响铃”时声音偏小。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【中科蓝讯】TWS 耳机提示音是怎样播放出来的</title>
      <link>https://btio.cn/posts/2026/08/10/%E4%B8%AD%E7%A7%91%E8%93%9D%E8%AE%AFtws-%E8%80%B3%E6%9C%BA%E6%8F%90%E7%A4%BA%E9%9F%B3%E6%98%AF%E6%80%8E%E6%A0%B7%E6%92%AD%E6%94%BE%E5%87%BA%E6%9D%A5%E7%9A%84/</link>
      <pubDate>Mon, 10 Aug 2026 15:06:42 +0800</pubDate>
      <guid>https://btio.cn/posts/2026/08/10/%E4%B8%AD%E7%A7%91%E8%93%9D%E8%AE%AFtws-%E8%80%B3%E6%9C%BA%E6%8F%90%E7%A4%BA%E9%9F%B3%E6%98%AF%E6%80%8E%E6%A0%B7%E6%92%AD%E6%94%BE%E5%87%BA%E6%9D%A5%E7%9A%84/</guid>
      <description>&lt;p&gt;在 TWS 耳机里，开机、蓝牙连接、低电量和降噪模式切换，通常都会伴随一段提示音。&lt;/p&gt;
&lt;p&gt;从表面看，提示音像是准备一个音频文件，需要时调用播放函数即可。实际上，一段提示音从代码触发到左右耳真正出声，中间还要经过资源查找、播放排队、双耳同步和音频恢复。&lt;/p&gt;
&lt;p&gt;本文以中科蓝讯 BT891x 原厂 SDK 的实现为例，重点分析提示音播放的核心流程。不同 SDK 的接口名称可能不一样，但整体思路通常可以互相参考。&lt;/p&gt;
&lt;h2 id=&#34;section-1&#34;&gt;一、提示音播放的完整链路&lt;/h2&gt;
&lt;p&gt;一段提示音的完整流程，可以先简化成下面五步：&lt;/p&gt;
&lt;div class=&#34;mermaid-diagram&#34; role=&#34;group&#34; aria-label=&#34;流程图&#34;&gt;
  &lt;pre class=&#34;mermaid&#34;&gt;%%{init: {&amp;#34;flowchart&amp;#34;: {&amp;#34;htmlLabels&amp;#34;: true, &amp;#34;wrappingWidth&amp;#34;: 1000, &amp;#34;rankSpacing&amp;#34;: 30}, &amp;#34;themeVariables&amp;#34;: {&amp;#34;lineColor&amp;#34;: &amp;#34;#71829a&amp;#34;}}}%%
flowchart TB
    subgraph R0[&amp;#34;① 准备播放请求&amp;#34;]
        direction LR
        R0N0[&amp;#34;业务触发&amp;#34;]
        R0N1[&amp;#34;找到对应的提示音资源&amp;#34;]
        R0N2[&amp;#34;把播放请求加入队列&amp;#34;]
        R0N0 --&amp;gt; R0N1 --&amp;gt; R0N2
    end
    class R0N0,R0N1,R0N2 blue;
    style R0 fill:#f1f6fd,stroke:#b8cfe8,color:#23456b
    subgraph R1[&amp;#34;② 同步与播放&amp;#34;]
        direction LR
        R1N0[&amp;#34;确定哪只耳机播放&amp;lt;br/&amp;gt;并完成双耳同步&amp;#34;]
        R1N1[&amp;#34;解码播放&amp;lt;br/&amp;gt;结束后恢复原来的音频状态&amp;#34;]
        R1N0 --&amp;gt; R1N1
    end
    class R1N0,R1N1 green;
    style R1 fill:#f0f8f3,stroke:#b9d7c4,color:#24563a
    R0 --&amp;gt; R1
    classDef blue fill:#e8f2ff,stroke:#7ba4d8,color:#23456b,stroke-width:1.5px;
    classDef green fill:#e7f4ec,stroke:#78aa8b,color:#24563a,stroke-width:1.5px;
    classDef amber fill:#fff3df,stroke:#d5a25b,color:#72501e,stroke-width:1.5px;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;比如手机连接耳机成功以后，蓝牙业务只需要提出“播放连接成功提示音”这个请求。至于提示音文件放在哪里、左右耳什么时候开始播放、当前音乐要不要降低音量，都会继续交给提示音模块处理。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
