【问题标题】:How can I decrease download and upload time of WAV files?如何减少 WAV 文件的下载和上传时间?
【发布时间】:2012-12-21 15:07:15
【问题描述】:

我正在 windows phone 上开发一个应用程序,该应用程序非常响亮、沉重,而且这些声音需要同时播放。这意味着我需要使用 PCM WAV 文件来创建 SoundEffect 类。

这些文件的下载时间太长,尝试使用 GZIP 并没有压缩多少。

还有哪些其他方法可以加快这些文件的下载时间。我曾尝试为 Windows Phone 找到 MP3 到 WAV 的转换类,但运气不佳(一切似乎只在服务器端运行)

我愿意接受任何可能的解决方案,只要我可以将 Windows Phone 设备上的 SoundEffect 类(或类似类)与我下载的文件一起使用。我真的不在乎它是如何被压缩或解压的,只要它可以在手机端和服务器端进行,我可以在过程结束时使用 SoundEffect 类中的文件。

谢谢。

虽然我很想编写自己的解码器,但我并没有真正得到空间或时间来做这件事。 (我也不知道从哪里开始)

【问题讨论】:

  • 你看过MediaPlayer吗?它支持多种音频格式。 msdn.microsoft.com/en-us/library/…
  • @Polynomial 是的,我有。但是,我需要多个文件(同时)在彼此之上播放,而 MediaPlayer 和 MediaElement 不允许这样做。
  • 有趣。您是否考虑过降低 WAV 文件的质量?您可以使用 22050Hz 而不是 44100Hz 采样将文件大小减半,手机扬声器上的质量差异可以忽略不计。
  • @Polynomial 是的,1 秒的文件仍然超过 100K :(
  • 您是否有理由不能将文件存储在应用程序包中,或者将更新的 sfx 作为更新包的一部分发布?

标签: c# audio windows-phone


【解决方案1】:

此网址有一个纯 C# MP3 解码器:http://robburke.net/mle/mp3sharp/

您可以使用它将 mp3 手动解码为 Wave PCM 音频,然后使用原始音频数据创建一个新的 SoundEffect 实例。

这是基于我去年在 AppHub 上的一次对话

【讨论】:

  • 谢谢,你搞定了吗?我前段时间下载了它,并且有一些编译错误,一旦我修复了编译错误,我意识到我不知道如何实际进行转换,或者从中获取诸如持续时间或其他任何数据之类的数据。另外,它可以用来将WAV转换为mp3进行上传吗?
  • 这是试图找到解决方法并将其用作解决方案的人使用的解决方案。从我读到的,它就像一个流,所以你尝试使用 IsolatedStorageFile.OpenFile() 创建目标文件并获取输出流,然后在创建的 Mp3Stream 上使用 CopyTo(很像扩展 zip 文件)
  • 好的,谢谢,现在正在调查。你有 AppHub 对话的链接吗?
  • forums.create.msdn.com/forums/p/94011/564038.aspx你可以留言,如果小伙子回复你会收到邮件通知
  • 我可能会在未来几天内对声音文件进行一些工作,如果您可以等待几天,我将使用此机制
【解决方案2】:

我终于解决了这个问题。我所做的是使用Ogg vorbisOggSound class,将ogg 转换为动态音效。它并不完美,但通过一些修补和包装,我能够让它全部工作。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-02-23
  • 2015-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多