Audio unity3d中的无间隙循环

Audio unity3d中的无间隙循环,audio,unity3d,Audio,Unity3d,我已经为此挣扎了好几天了…:( 我已经读过这些线索:,。这里还有一些理论: 我按照指示操作:导入WAV文件,选择MPEG编码,选中“无间隙循环”框 这只是给未来谷歌用户的一个提示。在非常旧的Unity版本中,有一个“无缝循环”按钮(从2014年左右删除)。事实上,这个按钮完全坏了,什么也没做 并使其循环: var gameObject2 = new GameObject("MyObject"); audioSource2 = gameObject2.AddComponent&

我已经为此挣扎了好几天了…:(

我已经读过这些线索:,。这里还有一些理论:

我按照指示操作:导入WAV文件,选择MPEG编码,选中“无间隙循环”框

  • 这只是给未来谷歌用户的一个提示。在非常旧的Unity版本中,有一个“无缝循环”按钮(从2014年左右删除)。事实上,这个按钮完全坏了,什么也没做
并使其循环:

    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();
var gameObject2=新游戏对象(“MyObject”);
audioSource2=gameObject2.AddComponent();
var filename=“test01_1152x”;
audioClip2=Resources.Load(文件名)作为音频剪辑;
audioSource2.clip=audioClip2;
audioSource2.loop=true;
audioSource2.Play();
然而,“流行”的声音是非常明显的

我想知道我错过了什么

检查“无间隙循环”只是稍微好一点,但它不能100%避免“砰”的声音。 如果给定的文件错误或不是这种情况下的最佳文件,那么该文件应该满足哪些条件才能有一个良好的无间隙循环bgm

这些是我尝试过的各种设置的图片,包括原始wave文件

原始波:很好地循环,因为它是WAV。

压缩为MPEG(非无间隙循环选择),“流行”的声音是超级明显,而听它。

压缩为MPEG(选择无间隙循环),“pop”声音仍然很明显,只是比设置好一点。

很容易看出,夹子不适合无间隙循环。 我不需要播放这些剪辑来听你提到的clic和流行音乐,这从你发布的波形中非常明显。将音频剪辑想象为可重复的纹理或无缝模式,开始和结束需要匹配,实现这一点的最简单方法是在波的振幅为0时剪切剪辑

看看与其他格式相比,WAV格式上的“sin”波有多平滑?原因是像MP3这样的压缩格式会丢失质量和信息,从而降低质量。看看压缩波不是从平滑开始的,而是从一条直线开始的,这条直线将呈现为噪声

因此,如果您增加kbps(更少的压缩),您将获得更好的结果。但我仍然强烈建议您使用WAV格式以获得更好的结果,这是Unity对短声音的声明:

一般来说,压缩音频(或模块)最适合于背景音乐或对话等长文件,而Native则更适合于短音效

关于“拥有一个漂亮的无间隙bgm”,你需要使用一个很好的工具,它允许你在导出到wav文件之前剪切、修剪、拉伸和测试音频环路。我个人使用Cakewalk声纳。这是一张你创作了一个漂亮的环路声音的图片,看看当振幅接近“0”时我是如何剪切声音的

最后一件事,如果您同时播放多个声音,您将无法利用MP3的硬件解码,大多数移动设备只允许硬件对一个声音进行解压缩,其他声音将由CPU进行渲染

在另一张图片中,我展示了如何正确地从一个较长的片段中剪切出一个不会像前面的示例中那样褪色的可循环声音

你不能在Unity中循环播放mp3。 手册中清楚地说明了这一点

事实上,当你将mp3放入Unity时,它会显示一个警告,提示你不能在Unity中循环播放mp3

只需转换为Ogg或Wav。 就这些

与mp3和wav声音相同:

显然,在不同格式之间转换音频文件很简单;可以使用Mac或PC上的任何软件进行转换。(例如。)


(注意:其他答案中关于如何在艺术意义上平滑循环的讨论,与Unity3D/mp3循环的问题完全无关-这很琐碎,你不能在Unity中循环mp3。)

@我没有尝试关闭harwdaware解码。没有声音变化:(.@kreys是的,我试着用短小的曲子。这是故意的,因为用短小的曲子“流行”声音更明显。无论如何,我都会尝试更长的音乐片段。在我看来,这个问题可能是因为必须每秒循环该片段8次,而不是每10-30秒循环一次普通片段。可能声卡或驱动程序组合无法跟上播放音乐的频繁变化。我仍然建议使用h更长的剪辑;)我尝试了一个稍长一点的文件,大约2秒。结果是一样的。我不认为是声卡或驱动程序相关的东西。但是我怀疑它与文件有关。就任何人来说,谷歌搜索这里,这里的四条评论是完全错误的,不幸的是,选择的答案是100%不正确。问题的答案我It’很简单,你不能在Unity中循环播放mp3。手册中有明确的解释。你只需要使用WAV,我明白。我使用短音只是为了“流行”听起来很明显,更快,更容易被我的耳朵察觉。事实上,我正在使用大约90秒长的背景音乐。我有一个问题。我有点理解背后的逻辑,所以我看到将歌曲剪切到接近0的位置是好的,但这是否意味着它一定是0?最初我尝试循环的歌曲以0结尾和开始,但它不是慢慢地变为零,就像在你的照片中,它更像是一个突然下降的结尾。你认为这种歌曲适合无间隙循环背景音乐吗?正如你所注意到的,我是声音工程领域的新手。Nacho,它不需要像我的照片中的cero。它只需要是无缝的,因为很难知道exact分贝或波的振幅,在0分贝时更容易剪切。突然下降是好的,只要你在0处剪切,歌曲的开始也是从0开始。我将尝试添加第二张图片e