3

在我的 Windows Phone 游戏应用程序中,我必须使用大量声音。现在我看到 Windows phone 不支持 mp3 文件。所以我需要使用 wav 文件。任何只有 500 kb 大小的 mp3 格式的 mp3 文件,将其转换为“.wav”时,最小为 2.5MB。它实际上占用了我的应用程序大小,并且不必要地我的应用程序的大小变得越来越大。

任何人都知道我怎样才能使用 mp3 文件?在我的解决方案中,我有一个 Asset 文件夹,在该文件夹中,所有“.wav”文件都位于该文件夹中。

我是怎么做的让我写一个代码

SoundEffect effect;

在构造函数内部-

{  
   ...
   var soundFile = "Assets/Jump.wav";
   Stream stream = TitleContainer.OpenStream(soundFile);
   effect = SoundEffect.FromStream(stream);

并且在代码中

effect.Play();

有没有更好的办法。在某些线程中,我知道这样做并不是更好的编码方式,因为它会创建对象并耗尽系统空间。请建议做什么,如何添加 mp3 文件并编写更好的代码来处理声音文件。

4

2 回答 2

2

您可以BackgroundAudioPlayer用来播放您的 wav 和 mp3 文件。SoundEffect班级无法播放 mp3 数据

通过它,它是一个完整的应用程序。

背景音频 WP

于 2013-09-16T10:44:18.900 回答
0

要使用 MP3 文件,您必须将 MP3 解码为内存中的 PCM,并在 SoundEffect.FromStream 方法中使用生成的流。

您可以尝试的另一件事是将 wav 文件编码为 ADPCM。这通常以 4:1 的比例压缩波形文件。如果不能直接使用流,那么解码 ADPCM 比解码 mp3 文件要简单得多。

您可以尝试节省空间的另一件事是将未压缩的波形文件转换为单声道,并降低采样率。您可以在转换后对声音进行听力测试,以确保质量损失是否可以接受。

于 2013-09-18T20:29:16.707 回答