移动设备中的扬声器(speaker)——一种电动式或压电陶瓷式换能器,将音频信号转换为频率从200赫兹(低频)到20千赫兹(高频)的声波。在现代智能手机中,采用底部主扬声器(main speaker)和顶部听筒(earpiece)的组合来实现立体声。根据Frost & Sullivan, 2025报告,智能手机内置扬声器的平均输出功率为1–2瓦,旗舰型号峰值功率可达5瓦。
要点
扬声器——一种电声换能器,将音频频率的电信号转换为振膜的机械振动,从而在空气中产生声波。主要组件:永磁体、音圈、振膜(鼓纸)和悬边。线圈中的电流产生磁场,与永磁体的磁场相互作用,推动线圈连同振膜一起运动。
在移动设备中,扬声器尺寸限制是播放的关键问题。旗舰智能手机(iPhone、Galaxy)主扬声器的振膜直径为12–16毫米。根据声学原理,低频需要较大的空气置换体积——小振膜无法再现低于200–300赫兹的低音。因此智能手机内置扬声器主要提供中高频。
为改善低频范围,制造商在智能手机机身中使用谐振腔(acoustic chambers)。扬声器振膜将空气推入容积为0.5–1.5毫升的塑料腔体中,该腔体像倒相管一样工作——将低频下限降至150–200赫兹。没有腔体时,下限将为400–500赫兹。
智能手机中的大多数扬声器为电动式。但在某些场景(听筒、超声波解锁)中会使用压电陶瓷(piezoelectric)换能器。它们利用逆压电变形效应:施加电压改变晶体尺寸,晶体振动产生声音。
| 参数 | 电动式 | 压电陶瓷式 |
|---|---|---|
| 频率范围 | 150–20000赫兹 | 1000–40000赫兹 |
| 功率(RMS) | 0.5–2.0瓦 | 0.1–0.5瓦 |
| 机身厚度 | 3–5毫米(含线圈) | 0.5–1.5毫米 |
| 1瓦时SPL | 78–85分贝 | 65–75分贝 |
| THD(典型值) | < 1%(0.1–0.5瓦) | < 3%(共振时) |
| 应用 | 主扬声器、听筒 | 听筒(Crystal Speaker)、测距仪 |
压电陶瓷扬声器更薄,可为电池节省空间,但在音量与音质上有所不足。例如,Xperia系列手机中的Crystal Speaker将玻璃屏幕用作振膜——声音通过压电元件使玻璃本身振动产生,无需传统线圈和磁铁。
智能手机音频系统配置包括2到4个换能器。听筒(earpiece)位于屏幕上方的顶部——其任务是传递通话对方的声音。听筒针对中频(200–3400赫兹)优化,通常功率为0.1–0.3瓦,在耳边提供60–70分贝的舒适音量。
主扬声器(main speaker)位于底部边缘或显示屏下方(如果屏幕是曲面)。这是智能手机中最强大的扬声器,RMS功率高达2瓦,频率范围150–18000赫兹。在立体声配置中,主扬声器负责右声道,听筒负责左声道。在一些旗舰机型中,会添加第三个换能器——高音扬声器(tweeter)用于高频(5–20千赫兹),带有独立放大。
立体声调校由编解码器和D类放大器执行。制造商(苹果、三星、小米)根据扬声器的具体特性调整分频器和均衡器。开发者无法以编程方式更改此设置——只能通过系统参数关闭或打开系统声音处理。
fun playTone(frequency: Int) {
val sampleRate = 44100
val duration = 1.0
val numSamples = (sampleRate * duration).toInt()
val samples = ShortArray(numSamples)
for (i in 0 until numSamples) {
val t = i.toDouble() / sampleRate
samples[i] = (Short.MAX_VALUE * sin(
2.0 * Math.PI * frequency * t
)).toShort()
}
val track = AudioTrack(
AudioManager.STREAM_MUSIC,
sampleRate,
AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT,
numSamples * 2,
AudioTrack.MODE_STATIC
)
track.write(samples, 0, numSamples)
track.play()
}
代码生成指定频率的正弦信号(PCM 16位,单声道)并通过AudioTrack在STREAM_MUSIC流中播放。AudioTrack是用于实时生成音频的低级API:应用程序直接访问音频缓冲区并以小于50毫秒的延迟管理播放。
阻抗——线圈的总电阻,在1千赫兹频率下以欧姆测量。对于移动扬声器,典型值为4和8欧姆。欧姆定律决定电流:在3.7伏固定电压下,4欧姆扬声器的电流消耗是8欧姆的2倍,产生更大音量。但低阻抗会增加D类放大器的发热。
灵敏度(SPL,声压级)——在1瓦功率下距离1米处的声压。以dB/W/m为单位测量。智能手机主扬声器的典型值为78–85 dB/W/m。3分贝的差异对应电功率翻倍。灵敏度由振膜结构、材料和声腔容积决定。
频率范围——扬声器以不超过±10分贝的不均匀度再现信号的频率区间。智能手机内置扬声器为200–18000赫兹。下限由振膜尺寸和腔体容积决定,上限由线圈惯性和运动系统质量决定。
根据DXOMARK Audio(2025)数据,旗舰智能手机在音量测试中达到SPL 75–82分贝,在70%音量下THD低于1%。扬声器音质领导者仍然是iPhone 16 Pro Max、Samsung Galaxy S25 Ultra和Xiaomi 15 Pro。
AudioTrack(Android)——将PCM缓冲区直接发送到音频流的API。应用程序管理缓冲区内容,可以生成音调、通过网络流式传输音频或混合多个源。AudioTrack以两种模式运行:MODE_STATIC(单个缓冲区一次性播放)和MODE_STREAM(缓冲区通过write()持续传输)。
AVAudioPlayer(iOS)——用于播放MP3、AAC、WAV等格式文件的高级API。对于音频缓冲区的低级访问,使用带有player节点的AVAudioEngine。AVAudioPlayer不需要解析编解码器——系统通过AudioToolbox自行将文件格式解码为PCM。
对于对延迟敏感的应用程序(游戏、合成器),在iOS上使用带有.playback类别和.withAudioWithOthers选项的AVAudioSession以与背景音乐混合。在Android上——使用带有PERFORMANCE_MODE_LOW_LATENCY(Android 8+)的AudioTrack将延迟降至10–20毫秒。
import AVFoundation
func playSound(name: String) {
guard let url = Bundle.main.url(
forResource: name, withExtension: "mp3"
) else { return }
let session = AVAudioSession.sharedInstance()
try? session.setCategory(.playback)
let player = try? AVAudioPlayer(contentsOf: url)
player?.volume = 0.8
player?.play()
}
代码在bundle中找到文件,激活带有.playback类别的音频会话(即使在静音模式下也能播放)并启动播放器。AVAudioPlayer自动管理解码和播放——开发者只需提供URL并设置音量。
现代智能手机包含编解码器或DSP级别的软件音质提升算法。均衡器调节频段的幅度。Android从AudioEffect API提供Equalizer类,带有预设(Rock、Classical、Bass Boost)和自定义频段。iOS——MPVolumeView仅带有用于Music应用的系统均衡器。
虚拟环绕声(Virtual Surround)通过HRTF滤波器(Head-Related Transfer Function)处理立体声信号,模拟声源在听者周围的位置。通过IAudioProcessingObject(Android)或AVAudioUnitReverb / AVAudioUnitEQ(iOS)实现。对于游戏和视频,虚拟环绕声改善空间感知,但降低声源定位的准确性。
DAC(数模转换器)将数字PCM流转换为扬声器的模拟信号。大多数SoC(Snapdragon、A17)具有内置DAC,频率高达384千赫兹,分辨率高达32位。旗舰型号(搭载ESS Sabre的LG G8、搭载AKM的Xiaomi 15)使用独立的Hi-Fi级DAC,SNR高达132分贝,支持DSD——用于有线耳机,而非内置扬声器。
常见问题
低频需要较大的空气置换体积——小扬声器(12–16毫米)的振膜面积不足以产生低频压力。大多数智能手机的下限为150–200赫兹。要实现高质量的低音传输,需要独立的低音炮或驱动单元直径40毫米以上的耳机。
听筒(earpiece)——智能手机顶部边缘用于传输语音的低功率扬声器(0.1–0.3瓦)。针对300–3400赫兹的频率范围优化。主扬声器(main speaker)——底部边缘用于音乐、视频和免提通话的更强扬声器(1–2瓦),全频范围150–18000赫兹。
在Android上——AudioManager.setStreamVolume(STREAM_MUSIC, level, 0)更改系统音量。在iOS上——AVAudioSession.setActive(true)并设置outputVolume(仅用于自己的播放器)。两个平台都允许通过volume属性设置播放器的相对音量。
在Android 8+上——在AAudio中使用带有PERFORMANCE_MODE_LOW_LATENCY + .playback配置的AudioTrack。延迟10–20毫秒。在iOS上——带有.playback类别的AVAudioSessionCategory和.withAudioWithOthers选项的AVAudioEngine提供5–15毫秒延迟。对于游戏和合成器,推荐使用OpenAL(iOS)或Oboe(Android)。
THD(总谐波失真)——总谐波失真系数,表示扬声器的非线性失真与原始信号的差异程度。对于智能手机内置扬声器,在70%音量下THD低于1%是极好的指标。当THD达到5–10%时,声音变得嘶哑刺耳。
总结
我们将开发一款交钥匙移动应用程序
IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。