如何在 Windows Phone 8 中使用 mp3 文件?

Posted

技术标签:

【中文标题】如何在 Windows Phone 8 中使用 mp3 文件?【英文标题】:How can I use mp3 files in Windows Phone 8? 【发布时间】:2013-09-16 09:22:31 【问题描述】:

在我的 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 文件并编写更好的代码来处理声音文件。

【问题讨论】:

【参考方案1】:

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

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

Background Audio WP

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

感谢您的回复,但您能否提供一些链接或示例代码来编码 WAV 文件,那就太好了。以及如何转换为单声道和降低采样率?请...

以上是关于如何在 Windows Phone 8 中使用 mp3 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows Phone 8 应用程序中检查社交网络身份验证?

如何发送推送通知 windows phone 8 应用程序?

如何在 windows phone 8.1 应用程序中使用 MenuFlyout 更改动态生成按钮的内容

如何在 windows phone 8 中找到当前地点的名称?

如何在 Windows Phone 8 应用程序中播放循环背景音频(不使用 BackroundAudio 服务)?

如何在 windows phone 8 中使用 push Sharp 发送带有参数的磁贴通知