尽管我在 Banshee 的设置菜单中启用了无缝播放,但歌曲之间仍然有很短的停顿。这可能是因为我的硬盘分区看起来很奇怪。
fdisk -l
产生以下输出:
Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x4a73c3cb
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 409599 203776 7 HPFS/NTFS/exFAT
/dev/sda2 409600 724153740 361872070+ 7 HPFS/NTFS/exFAT
/dev/sda3 1456826368 1465145343 4159488 c W95 FAT32 (LBA)
/dev/sda4 724154366 1456826367 366336001 5 Extended
Partition 4 does not start on physical sector boundary.
/dev/sda5 1440159744 1456826367 8333312 82 Linux swap / Solaris
/dev/sda6 724154368 1440159743 358002688 83 Linux
Partition table entries are not in disk order
播放 mp3/dev/sda2
或/dev/sda6
会产生此问题。我似乎在 Rhythmbox 或 Clementine 上也没有无缝播放功能,如果这些媒体播放器应该有的话。
我不确定还要提供什么其他信息。这让我很烦。感谢您的帮助。
编辑:这是在 Ubuntu 12.04 中
答案1
根据我的研究,我认为问题在于我使用的是经过压缩的 MP3。每个 MP3 音轨的开头和结尾都会添加一个小间隙,因此显然无法实现真正的无间隙播放。请参阅维基百科上有关无缝播放的页面。我在使用时遇到了同样的问题控制台上的音乐,还支持“无缝播放”。
不幸的是,我也没有解决方案。
答案2
答案3
Banshee 无法“无缝”地播放 MP3 文件,这可能与音乐文件本身无关。尽管 MP3 是一种压缩音频(就像 M4A、WMA 等),但它们仍然可以被编码以无缝播放。
“编码器延迟”是指在开始音频文件在编码时,编码器填充是指在编码后添加的静音样本数量。结尾编码音频文件的音频。如果您刚刚以 MP3 格式翻录到计算机上的 CD 的曲目 1 被无填充编码,而曲目 2 被无延迟编码,那么这两个曲目就可以无缝播放。它们是否以这种方式编码取决于编码器。例如,Windows Media Player 以无延迟或填充的方式对 CBR(恒定比特率)MP3 进行编码,因此它们可以在 iTunes 中无缝播放(来源:我的 14:59 CD,由 Sugar Ray 制作,其中最后两个曲目旨在无缝衔接)。请参阅本维基部分有关修复严重延迟和/或填充的 MP3 文件的一些信息,因为它将让您了解如何在无间隙播放方面对音频文件进行编码和解码。
因此如果你的文件被编码为无缝播放,它们被编码以无缝播放故事结束。将它们放到不同的分区,甚至放到网络驱动器上,对曲目是否可无间隙播放。
现在,无论轨道是否真的是无间隙播放与音乐播放器如何缓冲音频样本并将其发送到音频接口有关(在 Linux 发行版中,最常见的音频接口是 PulseAudio)。如果音乐播放器的编程很差(不幸的是,我认为 99% 的音乐播放器都是这样),它可能不会在当前曲目播放完之前开始读取、解码和播放下一首曲目,在这种情况下,延迟可能有很多原因,从线程上下文切换将音乐播放器的线程带到前台,到从磁盘读取音频文件的前几帧(对于 HDD 来说,这需要长达十毫秒的时间),到解码这些帧,到将它们发送到音频接口,到音频接口将它们发送到声音库(在 Linux 发行版中通常是 ALSA),到库通过系统调用将它们发送到内核……您明白了。因此,音乐播放器必须在当前曲目结束之前读取下一首曲目的帧,以便可以无间隙地将它们发送到音频接口。
根据我的经验,我找遍了所有可以无缝播放音乐文件的音乐播放器(我最喜欢的专辑之一是 Abbey Road,如果不是无缝播放,第二面/第二张光盘上的混合曲就会被破坏……),遗憾的是,大多数报告无缝播放的播放器(包括 Linux 上的 RhythmBox 和 Banshee、Android 上的 Google Music、Samsung Music Player 和无数其他播放器,以及 Windows 上的各种不同播放器)都没有。我发现真正正确实现无缝播放的只有两个,即 Windows、Mac、iPod、iPhone 等上的 iTunes 和 Android 上的 GoneMAD Music Player。如果您的音乐文件至少在 iTunes 中无法无缝播放,则它们的编码不正确,您需要对 CD 或 FLAC 文件中的新文件进行编码。
因此,不幸的是,我不知道 Linux 上有任何音乐播放器可以真正实现无缝播放。也许有一天我会研究 Banshee 的代码,看看是否有什么我可以做的来帮助它真正实现无缝播放...
无论如何,我希望这个解释能有所帮助。如果其他人知道一些可以正确进行无缝播放的优质音乐播放器,请发表评论。