WP7同时/动态地播放许多压缩(mp3,wma等)音频文件

由于尺寸的原因,我需要将WP7应用与压缩音频(mp3,wma等)捆绑在一起。 我如何自由/同时播放这些内容?

XNA框架只支持WAV文件,所以除非有一个纯粹的C#托管代码库在某处解压缩mp3 / wma / ogg(?),否则下一个选项是...

MediaElement的。 但是MediaElement的效果并不好。 您似乎需要在xaml中专门添加一个MediaElement作为标记,并且不能使用多个实例(多个标记)。 只要我播放某个MediaElement,我就无法在同一页面上播放另一个MediaElement。 我没有发现任何有关参考文献的限制(参考文献非常空)。 我也尝试过动态创建MediaElement对象,但这看起来似乎没有任何意义,或者我根本无法让它播放这些文件。


根据我的经验,目前在WP7上没有很好的解决方案。 您可以使用带有XNA的wav,并增加xap的大小,或使用MediaElement功能非常有限的mp3,从而影响您可以使用的功能。

您可能可以将一些C#音频库移植到WP7,至今我还没有听说过,所以它可能是远射。

在我的一个应用程序中,我终于决定在用不同的选项玩了很长一段时间后,选择使用wav + XNA组合。


使用内置的XNA内容管道音效压缩!

SoundEffect内容类型的默认设置是“最佳”压缩质量(实际上看起来根本没有压缩)。 将压缩质量设置为“低”,您将获得更小,更小的文件。 或者“中等”,以便在尺寸和质量之间取得平衡。

要更改此设置,请在解决方案资源管理器中选择.wav文件,按F4打开属性窗口,展开“Content Processor”节点,然后更改出现的压缩质量设置。


以下是屏幕截图的说明:

创建一个新的WP7 XNA游戏项目(或以其他方式获取XNA内容项目)

创建项目

添加一个wav文件到内容项目中:

添加音效

Wav文件已添加

按下F4并在解决方案资源管理器中选择wav文件,弹出属性窗口。

内容属性

展开“内容处理器”节点并将压缩质量更改为所需的设置。

设置压缩

“最佳”设置不提供压缩(原始波形),“中”和“低”设置的文件更小。


using Microsoft.Xna.Framework.Media;

void PlaySound(string pathToMp3) {
   Song song = Song.FromUri("name", new Uri(pathToMp3, UriKind.Relative));
   Microsoft.Xna.Framework.FrameworkDispatcher.Update();
   MediaPlayer.Play(song);
}
链接地址: http://www.djcxy.com/p/41787.html

上一篇: WP7 play many compressed (mp3, wma etc) audio files simultaneously/dynamically

下一篇: WP7 gapless music from MediaPlayer when using mediaElement