使用XNA裁剪音频

时间:2010-07-03 21:08:24

标签: c# audio xna editing crop

我是XNA的新用户,我正在尝试允许用户编辑他们已加载的音频文件。在XNA中,是否可以选择时间范围(例如0:00 - 0:10)和'将那部分作为一个单独的实体来收割?我想,基本上,它只是将数据复制到一个新文件。这可以使用XNA音频库来完成,如果是这样,我应该关注哪些方法? 谢谢

3 个答案:

答案 0 :(得分:0)

我看不到你说的话,但在查看的过程中,我确实遇到过这个有用的Audio Overviewtutorial on using Microsoft's Cross-platform Audio Creation Tool (XACT)。由于您是XNA的新手,我希望这些链接能提供一些帮助。

问题似乎是期望是音频是在前手而不是在游戏中创建的,如您所愿。当然,有audio editorsAudacityAviarywaveosaur等外部Adobe SoundBooth可以帮助您在游戏之外进行编辑。或者,您可以使用XNA / XACT库的播放功能来“模拟”裁剪,方法是将用户的时间帧选项存储为变量,然后再播放音频的对应部分。

我希望其中一些能有所帮助。

-gMale

答案 1 :(得分:0)

据我所知,XNA不包含任何简单地将音乐或提示对象写入文件的方法。

如果您希望用户在XNA游戏中编辑音频并将其另存为仍然可用的音频文件,则必须发现正确的文件格式并直接编写。但是,如果您只是希望他们操纵音频以在游戏中使用,我相信您还有其他选择。

您可以序列化对象(以便在游戏之间保存您的状态)。您可以存储表示音频操作的值(例如,开始和结束时间),并将它们与提示一起序列化。我必须承认,我从未尝试过序列化音频提示,但你可以尝试将数据推送到XNA内容管道,迫使它在运行时为你创建一个XNB文件。

答案 2 :(得分:0)

如果您可以等待XNA 4,则可以对声音缓冲区进行低级别访问,您可以根据需要裁剪它。 Google搜索“C#wav文件”会显示大量链接,告诉您如何操作内存中的数据。

在此处下载XNA 4.0测试版:

http://creators.xna.com/en-US/launchcenter

以下是解释如何使用新API的链接:

https://blogs.msdn.com/b/ashtat/archive/2010/06/03/soundeffect-creation-in-xna-game-studio-4.aspx