我是XNA的新用户,我正在尝试允许用户编辑他们已加载的音频文件。在XNA中,是否可以选择时间范围(例如0:00 - 0:10)和'将那部分作为一个单独的实体来收割?我想,基本上,它只是将数据复制到一个新文件。这可以使用XNA音频库来完成,如果是这样,我应该关注哪些方法? 谢谢
答案 0 :(得分:0)
我看不到你说的话,但在查看的过程中,我确实遇到过这个有用的Audio Overview和tutorial on using Microsoft's Cross-platform Audio Creation Tool (XACT)。由于您是XNA的新手,我希望这些链接能提供一些帮助。
问题似乎是期望是音频是在前手而不是在游戏中创建的,如您所愿。当然,有audio editors,Audacity,Aviary和waveosaur等外部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