<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD with MathML3 v1.3 20210610//EN" "JATS-archivearticle1-3-mathml3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" dtd-version="1.3" article-type="other" xml:lang="zh-Hans"><front><journal-meta><journal-id journal-id-type="publisher-id">appstoryo</journal-id><journal-title-group><journal-title>AppStoryo</journal-title></journal-title-group><publisher><publisher-name>lapnito.cz s.r.o.</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="publisher-id">blog/how-to-get-gapless-playback-on-your-phone/zh-hans</article-id><title-group><article-title>如何在手机上实现无缝衔接播放</article-title></title-group><contrib-group><contrib contrib-type="author"><string-name>Lubor Šimůnek</string-name></contrib></contrib-group><pub-date date-type="pub" publication-format="electronic"><day>27</day><month>10</month><year>2026</year></pub-date><permissions><copyright-statement>© 2026 lapnito.cz s.r.o.</copyright-statement><copyright-year>2026</copyright-year><copyright-holder>lapnito.cz s.r.o.</copyright-holder><license license-type="open-access" xlink:href="https://creativecommons.org/licenses/by/4.0/"><license-p>CC BY 4.0</license-p></license></permissions><self-uri xlink:href="https://appstoryo.com/zh-hans/blog/how-to-get-gapless-playback-on-your-phone"/><abstract><p>MP3 解码器会插入 528 个静音采样，而 FLAC 和 Opus 保存精确长度。曲目之间的空白从何而来，又该如何把它去掉。</p></abstract><kwd-group kwd-group-type="author"><kwd>生产力</kwd><kwd>article</kwd><kwd>AppStoryo</kwd></kwd-group></article-meta></front><body><p>曲目之间的空白是文件的属性，不是手机的问题。MP3 和 AAC 解码器会在每个文件开头插入 528 个静音采样，而 FLAC、ALAC 和 Opus 则记录精确的采样数。FLAC Player Offline: Gapless 是一款面向 iPhone 和 Android 的免费离线播放器，它读取这个数值，把一张专辑当成一段连续录音来播放。</p><p><italic>声明：AppStoryo 由开发 FLAC Player Offline: Gapless 的同一家工作室运营。下面的比较采用任何人都能公开核验的标准，并指名真实存在的替代软件。</italic></p><p>解决办法分两半：把音乐保存在会记录自身长度的格式里，再用一个尊重这个长度的播放器。下文讲清楚静音从哪里来、哪些格式精确到采样，以及具体怎么设置。FLAC Player Offline: Gapless 在 <ext-link ext-link-type="uri" xlink:href="https://apps.apple.com/us/app/flac-player-offline-gapless/id6793288615">App Store</ext-link> 和 <ext-link ext-link-type="uri" xlink:href="https://play.google.com/store/apps/details?id=com.tomas.music_player">Google Play</ext-link> 上都免费。</p><sec id="s1"><title>手机上两首歌之间为什么会有空白？</title><p>因为有损编码器无法描述任意数量的采样。一个 MP3 帧正好容纳 1152 个采样，所以当一首曲目不是 1152 的整数倍时，编码器就用零把最后一帧填满。编写了最通行 MP3 编码器的 LAME 项目在其<ext-link ext-link-type="uri" xlink:href="https://lame.sourceforge.io/tech-FAQ.txt">技术说明</ext-link>中记录道：它测试过的每一款解码器还会在文件开头额外引入 528 个采样的延迟，而一个 WAV 文件经过编码再解码后，会带着 1056 个采样的延迟回来。</p><p>在光盘抓轨常用的 44.1 kHz 下，一秒是 44,100 个采样，因此 528 个采样约相当于 12 毫秒被加进去的静音，而用零填满的末帧最多再添 26 毫秒。放在两首互不相干的流行歌之间谁也听不出来，但放在现场演出或对准节拍的混音中间，就刺耳得毫不含糊。这也是为什么抱怨几乎总是来自手里有概念专辑、古典录音或打碟现场的人。</p></sec><sec id="s2"><title>无缝衔接播放到底指什么？</title><p>它指的是下一首曲目的第一个采样紧接当前曲目的最后一个采样送到输出，中间不插入任何东西，也不会被误切掉任何东西。它不是淡入淡出。淡入淡出把两首曲目叠在一起并压低两者音量，从而遮住接缝；无缝衔接播放是把接缝本身去掉，两个设置解决的是相反的问题。</p><p>三件事必须对上。文件必须声明自己包含多少采样，解码器必须丢弃编码器的填充而不是把它播出来，播放器必须在当前曲目结束之前就把下一首解好码并排进队列。一个等前一首播完才去打开下一个文件的播放器，无论格式多好，总会制造出一段短暂的静音。</p></sec><sec id="s3"><title>专辑能不能连贯播放，是由文件格式决定的吗？</title><p>在很大程度上是的。FLAC 由 <ext-link ext-link-type="uri" xlink:href="https://www.rfc-editor.org/rfc/rfc9639.html">IETF 的 RFC 9639</ext-link> 规定，其中把最小块大小定为 16 个采样、最大定为 65,535，然后留下此处唯一要紧的例外：最后一块可以小于 16 个采样，正是为了让文件在不使用填充的情况下与已编码音频的长度相符。因此 FLAC 文件在音乐结束的地方结束。它的 STREAMINFO 头部还用一个 36 位字段保存采样总数，并带有原始音频的 128 位校验和。</p><p>Opus 用另一种办法解决同一个问题。<ext-link ext-link-type="uri" xlink:href="https://www.rfc-editor.org/rfc/rfc7845.html">RFC 7845</ext-link> 在流的头部放入一个预跳过字段，标明播放器应当解码后丢弃的采样；在裁剪一段流时，它建议预跳过至少 3,840 个采样，并把真正的播放位置定义为颗粒位置减去这个预跳过值。MP3 和 AAC 也可以做到连贯播放，但前提是编码器把延迟和填充写进了标签、播放器又会去读它，这就多了一个可能出错的环节。</p></sec><sec id="s4"><title>在 iPhone 和 Android 上怎样获得无缝衔接播放？</title><p>先从文件下手。把专辑抓轨或转换成 FLAC 或 ALAC 而不是 MP3，每张专辑各放在自己的文件夹里，并把文件夹整体导入，这样曲目顺序才能保住。FLAC Player Offline: Gapless 会连结构一起导入整个文件夹，它的 Wi-Fi 传输则通过浏览器把音乐从电脑直接送进应用，从而避开同步工具可能强加的重新编码。它在 <ext-link ext-link-type="uri" xlink:href="https://apps.apple.com/us/app/flac-player-offline-gapless/id6793288615">iPhone</ext-link> 和 <ext-link ext-link-type="uri" xlink:href="https://play.google.com/store/apps/details?id=com.tomas.music_player">Android</ext-link> 上都免费，商店里它自己的介绍写道：</p><disp-quote><p>Gapless playback that actually works, for live albums, concept albums and DJ sets</p></disp-quote><p>在 Android 上，地基就在平台本身。<ext-link ext-link-type="uri" xlink:href="https://developer.android.com/reference/android/media/MediaPlayer">MediaPlayer 文档</ext-link> 自 API 级别 16 起便有 setNextMediaPlayer 方法，文档把它描述为尽可能无缝地从一个播放器过渡到下一个；它之所以存在，恰恰因为曲目末尾的交接才是难处。而在系统音乐应用根本不导入 FLAC 的 iPhone 上，这份活儿只能由你安装的播放器来干。随后检查两项设置：无缝衔接打开，专辑内部的淡入淡出关闭，因为淡入淡出会毫不客气地拆掉你刚刚设好的东西。</p></sec><sec id="s5"><title>到底该用哪一款播放器？</title><sec id="s6"><title>想要最广的格式支持，就选 foobar2000</title><list list-type="bullet"><list-item><p>由 Resolute 发布，免费，2026 年 10 月 17 日更新到 2.26 版，App Store 上有 209 条评分，平均 4.5。它在 App Store 和 Google Play 上都有。</p></list-item><list-item><p>它的介绍把无缝衔接播放与 WavPack、Musepack、ReplayGain 音量齐平以及从 UPnP 服务器播放并列写出。如果你的曲库里有别的播放器根本没听说过的格式，能打开它们的就是这一款。</p></list-item></list></sec><sec id="s7"><title>要一个应用什么都能放，就选 VLC media player</title><list list-type="bullet"><list-item><p>由 VideoLAN 发布，免费，截至 2026 年 4 月 24 日为 3.7.3 版，有 5,988 条评分，平均 3.7，两家商店都有。它几乎能不转换就播放各种格式的视频与音频，还能从 SMB、FTP 和 DLNA 服务器接收串流。</p></list-item><list-item><p>它在 App Store 的介绍里没有提到无缝衔接播放。如果你读这篇文章就是为了曲目之间的平顺过渡，那就把这份沉默当作答案，先用自己的文件试一试，再决定要不要把整个曲库交给它。</p></list-item></list></sec><sec id="s8"><title>最看重界面，就选 Doppler</title><list list-type="bullet"><list-item><p>由 Brushed Type Ltd 发布，3.2 版，最后更新于 2025 年 10 月 3 日，有 1,590 条评分，平均 4.6。它是 iPhone 与 Mac 上的软件，在 Google Play 上没有页面。</p></list-item><list-item><p>它可以导入音乐和播放列表供离线聆听，还能不经同步就在设备上直接修改曲目信息与封面。代价是平台：换成 Android 手机就完全无从谈起。</p></list-item></list></sec><sec id="s9"><title>只想要无缝衔接、不想有别的东西挡路，就选 FLAC Player Offline: Gapless</title><list list-type="bullet"><list-item><p>两家商店都免费，没有广告、没有订阅、也不需要账号，支持包括 FLAC、ALAC、WAV 和 Opus 在内的八种格式，带 10 段均衡器，并可导入 M3U 播放列表。</p></list-item><list-item><p>专辑内部的无缝衔接与专辑之间的淡入淡出是两个独立设置，而不是一个折中，整个曲库始终留在设备上。</p></list-item></list></sec></sec><sec id="s10"><title>什么时候无缝衔接播放器并不适合解决你的问题？</title><p>当静音已经写进文件的时候。如果你手上某张专辑的唯一副本是没带无缝标签抓出来的 MP3，编码器切掉的采样就已经没了，把那些 MP3 转成 FLAC 只会把空白原样保存下来，而不是把它去掉。请从原盘重新抓轨，或者买一份无损下载；没有哪个播放器能找回从未被写下的声音。</p><p>如果你的音乐住在串流服务里，它同样是错误的工具，因为本地文件播放器没有东西可放。还有一种情形：如果专辑在母带阶段就在曲目之间留了真正的静音，那段静音是演奏者的决定，无缝衔接播放器会原原本本地照原意呈现它。</p></sec><sec id="s11"><title>关于无缝衔接播放的常见问题</title><sec id="s12"><title>无缝衔接播放和淡入淡出是一回事吗？</title><p>不是，而且两者互相抵消。淡入淡出把一首的结尾叠到下一首的开头并压低两者音量，这在设计上就是听得出来的。无缝衔接播放什么都不插入。在专辑内部请把淡入淡出保持关闭。</p></sec><sec id="s13"><title>把我的 MP3 转成 FLAC 能去掉空白吗？</title><p>不能。转换会把 MP3 里的内容照抄过来，包括解码器那 528 个采样的延迟，以及末帧里用零做的填充。FLAC 随后会把这段静音无损地保存下来。想得到干净的文件，请从原盘重新抓轨。</p></sec><sec id="s14"><title>手机自带的音乐应用能连贯播放我的文件吗？</title><p>这取决于文件。iPhone 的系统音乐应用根本不导入 FLAC，这正是几乎每个无损曲库都需要第三方播放器的原因。Android 上则因厂商而异，所以先拿一张专辑试一试再去相信那个设置。</p></sec><sec id="s15"><title>无缝衔接播放一定要用无损文件吗？</title><p>不一定。Opus 在头部带着预跳过字段，所以它并非无损却能精确到采样。无损格式只是最稳妥的选择，因为 FLAC 和 ALAC 记录的是精确长度，不存在需要再被抵掉的填充。</p></sec><sec id="s16"><title>为什么现场专辑和打碟现场受影响最大？</title><p>因为音乐跨过了曲目的边界。两首流行歌之间 12 毫秒的静音谁也听不见，但同样的静音落在一段连续的现场观众录音或对准节拍的混音中间，就会把你正在听的节奏打断。</p></sec><sec id="s17"><title>蓝牙会自己添上一段空白吗？</title><p>蓝牙添加的是延迟，它让所有声音同等地延后，并不是曲目之间的空白。如果用蓝牙时每次换曲都听到静音、用线却听不到，原因在播放器或文件，而不在这条无线链路。</p></sec><sec id="s18"><title>FLAC Player Offline: Gapless 需要联网吗？</title><p>不需要。它播放的是设备上已经存好的文件，它的介绍也写明永远不需要连接，没有广告、没有订阅、不要账号。这同时意味着它无法从音乐服务接收串流，这正是它有意做出的取舍。</p></sec><sec id="s19"><title>一开始该怎么把我的音乐放进这个应用？</title><p>有三条路：通过浏览器从电脑用 Wi-Fi 传输；整个文件夹一起导入，让专辑仍然是一张专辑；或者用 iPhone 上的文件应用和 Mac 上的 Finder。真正能保住顺序的是按文件夹导入。</p><p>先把格式弄对，再把播放器弄对：抓轨成 FLAC 或 ALAC，按文件夹导入，打开无缝衔接、关掉淡入淡出。FLAC Player Offline: Gapless 在 <ext-link ext-link-type="uri" xlink:href="https://apps.apple.com/us/app/flac-player-offline-gapless/id6793288615">App Store</ext-link> 和 <ext-link ext-link-type="uri" xlink:href="https://play.google.com/store/apps/details?id=com.tomas.music_player">Google Play</ext-link> 上免费，不用账号也不用联网就能播放你自己的文件。</p></sec></sec></body></article>
