【问题标题】:Clicking at start and end of SoundEffect playback in WP7 XNA在 WP7 XNA 中单击 SoundEffect 播放的开始和结束
【发布时间】:2012-06-07 08:00:58
【问题描述】:

我正在循环播放这个声音文件:http://engy.us/misc/ThrusterLoop.wav。它在 Windows 中的任意数量的播放器上都能完美播放,但是当我将它作为 SoundEffect 加载到 XNA 中时,它会在播放开始和结束时出现这些烦人的点击。

如果我循环播放一段时间,它不会在中间产生任何这些恼人的点击。如果我将它作为独立的声音播放,它仍然会在开始时单击。它是在模拟器和我的物理设备上点击的。

为什么要这样做?我的声音文件有问题吗?这是一个 16 位立体声 44.1 kHz PCM WAV 文件,我认为这是非常标准的。

(edit2) 我捕捉到通过 XNA 回放产生的声音,并将其与原始波形进行比较。看看:

http://engy.us/pics/Waveform_Original.png
http://engy.us/pics/Waveform_EmulatorXNA.png

播放时有些东西搞砸了!两次大幅度的变化一定是我听到的咔哒声。它似乎有点争先恐后。在开始时设置静音可能对某些人有所帮助,因为打乱的静音不会产生任何点击。

【问题讨论】:

    标签: windows-phone-7 audio xna soundeffect


    【解决方案1】:

    使用Audacity 之类的程序查看声音的波形。您可以通过正确排列波形来减少或消除“咔嗒声”,使其在 0db 标记(中心线)处开始和结束。在 Audacity 中,您可以分别在前面和后面使用 Fade In 和 Fade Out 来做到这一点,尽管这会导致您的声音音量“跳动”。为了解决这个问题,请尽可能放大并仅在前后最小的可选区域上使用淡入/淡出。

    需要注意的一点是,当它循环时,您希望波形继续……波形。如,如果您的波形在声音的开头指向上方(它从 0db 开始向上),它应该在最后从下方上升到 0db,因此如果您要复制+粘贴声音正确在它自己之后,它会形成一个漂亮的波浪而不是一个高峰。

    【讨论】:

    • 已编辑问题以显示声音的开始。我特意将它切到非常接近 0 的位置,并且在 WMP、Audacity 或任何普通媒体播放器中播放声音时它不会发出咔嗒声。只有在 XNA 中作为 SoundEffect 播放时才会这样做。当我回到家时,我会在模拟器中捕捉它的实际声音并将其与源进行对比。哦,我确实对其进行了编辑以继续循环播放:我剪掉了开头并与结尾交叉淡入淡出,这样我就得到了一个无缝循环。实际的循环听起来如何不是问题。在 XNA 中播放开始时的点击是。
    • 右声道看起来有点错位。缩小到样本级别将显示是否如此。即使是最小的偏移量也会产生咔哒声。我肯定注意到 XNA 比其他媒体播放器做得更明显。我认为这是由于游戏声音文件的压缩。如果你真的想不通,你总是可以使用音效的音量参数以编程方式使声音淡入。无论如何,我认为因为点击只发生在开头并且你已经交叉淡入淡出循环,所以问题是从 0db 跳转到你开始的任何地方。
    • 已编辑问题以显示原始文件的波形与 XNA 中回放的波形。点击肯定会在 XNA 中引入!
    • 啊,我明白了。是的,这有很大的不同。这一定是由于内容处理器的压缩或不准确……恐怕我无法提供帮助。如果您可以更改声音文件类型,这可能会有用:xnawavpack.codeplex.com。它完全跳过内容导入器。
    猜你喜欢
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多