我需要在我的 WP7 应用程序中一次播放多个音效。
我目前使用它处理大约 5 兆字节的 wav 文件,而不是在 wma/mp3 中编码时的 500kb。
代码的当前部分:
Stream stream = TitleContainer.OpenStream(String.Format("/location/{0}.wav", value)
SoundEffect effect = SoundEffect.FromStream(stream);
effect.Play();
这在循环中非常有效,准备所有效果,然后播放它们。
但是,我真的很想使用 mp3/wma/whatever-codec 来精简我的 xap 文件。
我尝试使用
MediaElement
,但似乎您也不能使用它来播放多个文件。还有 XNA MediaPlayer
无法实例化,据我所知无法同时播放多个文件。我看到的唯一解决方案是我以某种方式解码
mp3
至 wav
并喂它 Stream
至 SoundEffect
.关于如何完成多重播放的任何想法?或有关如何解码的建议
mp3
至 wav
?
最佳答案
关于转换......抱歉 - 但我认为目前没有任何可用于 WMA 或 MP3 解码的 API。
此外,我认为没有任何 MP3、WMA 或 Ogg 解码器的实现可以在纯 c# 代码中使用——我见过的所有这些都使用 DirectShow 或 PInvoke——例如见 C# Audio Library .
我个人确实希望在不久的将来可以在 WP7 API 中使用音频/视频压缩/解压缩 - 但我无法猜测什么时候!
对于一些简单的压缩,您可以尝试发送单声道文件而不是立体声文件,或者发送 8 位而不是 16 位音频文件——这些很容易在手机上转换回 16 位(明显降低分辨率)。
使用像 zip 这样的压缩也可能对某些声音效果有所帮助……但我不认为它会取得巨大成功。
关于windows-phone-7 - 如何一次播放多个 mp3/wma 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5782363/