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
文件到内容项目中:
按下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