windows-phone-7 - 如何一次播放多个 mp3/wma 文件?

标签 windows-phone-7 audio mp3 wav wma

我需要在我的 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无法实例化,据我所知无法同时播放多个文件。

我看到的唯一解决方案是我以某种方式解码 mp3wav并喂它 StreamSoundEffect .

关于如何完成多重播放的任何想法?或有关如何解码的建议 mp3wav ?

最佳答案

关于转换......抱歉 - 但我认为目前没有任何可用于 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/

相关文章:

FFMPEG : Invalid data found when processing input

python - 如何使用python将mp3文件拆分为几个部分

windows - 如何在 mp3 文件中找到 X 秒的静音?

mvvm - 如何正确保存页面的 View 模型以处理墓碑

java - 从 javax.sound.sampled.Clip 检索音频样本

windows-phone-7 - Windows Phone 的单元测试状态

java - 在Java中一个接一个地播放WAV文件

android - 如何在android上实现实时音频处理?

c# - 过滤 ObservableCollection?

windows-phone-7 - 如何在 WP7 上制作 XNA 可移动 mask