我已经在这几天挣扎过了...... :(
我已阅读过这些帖子:Gapless-MP3-playback,Gapless looping on iOS,Gapless looping on iOS Producing seamless looping mp3s。这里还有一点理论:mp3Loops
我按照说明进行操作:导入WAV文件,选择MPEG编码,检查"无间隙循环"方框
并使其循环:
var gameObject2 = new GameObject("MyObject");
audioSource2 = gameObject2.AddComponent<AudioSource>();
var filename = "test01_1152x";
audioClip2 = Resources.Load (filename) as AudioClip;
audioSource2.clip = audioClip2;
audioSource2.loop = true;
audioSource2.Play();
然而,&#34; pop&#34;声音非常明显。
我想知道我错过了什么?
检查&#34;无间隙循环&#34;只是好一点,但它并没有避免&#34; pop&#34;声音100%。 如果给出的文件错误或不适合这种情况,那么文件应该满足哪些条件以便有一个很好的无间隙循环bgm?
这些是我尝试的各种设置的图片,包括原始波形文件
Original Wave:很好地循环,因为它是WAV。
压缩为MPEG(选择非无间隙循环),&#34; pop&#34;听的时候声音非常明显。
压缩为MPEG(选择Gapless循环),&#34; pop&#34;声音仍然很明显,比设置好一点。
答案 0 :(得分:5)
手册中有清楚说明。
这就是它的全部内容。
请注意出于此目的,Inspector底部的显示清楚地显示您无法循环播放mp3。
这里的声音与mp3和wav相同:
显然,在格式之间转换音频文件是微不足道的;使用Mac或PC上的任何软件来执行此操作。 (示例,TwistedWave。)
(注意,音频工程师的解释,关于如何在艺术意义上使文件循环的两端顺利,与Unity3D / mp3的问题完全无关。)< / p>
答案 1 :(得分:3)
很容易看出这些剪辑不适合无间隙循环。 我不需要播放这些片段来听你提到的clic和pop,从你发布的波形中可以看出这一点。将音频剪辑视为可重复纹理或无缝模式,开始和结束需要匹配,实现此目的的最简单方法是在波幅为0时剪切剪辑。
看看&#34; sin&#34;与其他格式相比,WAV格式的波形?原因是MP3等压缩格式丢失了质量和信息,质量下降。看到压缩波不能开始平滑,它们以直线开始,将呈现为噪声。
因此,如果您增加kbps(压缩率更低),您将获得更好的结果。但我仍然强烈建议您使用WAV格式以获得更好的结果,这就是Unity声明的短声音:
&#34;作为一般的经验法则,压缩音频(或模块)最适合长文件,如背景音乐或对话,而Native更适合短音效和#34;
Audio Clip - Importing Audio Assets
关于&#34;有一个很好的无间隙bgm&#34;您需要使用一个好的工具,允许您在将音频循环导出到wav文件之前剪切,修剪,拉伸和测试音频循环。我个人使用Cakewalk SONAR。这是一个你组成一个漂亮的循环声音的图像,看看当振幅接近时如何切割声音&#34; 0&#34;。
最后一点,如果您同时播放多个声音,您将无法利用MP3的硬件解码,大多数移动设备只允许一个声音被硬件解压缩,其他声音将是由CPU渲染。
在另一张图片中,我展示了如何从不像前一个例子中那样褪色的较长片段中正确剪切可循环播放的声音。