【问题标题】:XNA WP7 - Open file without reading it all into memory?XNA WP7 - 打开文件而不将其全部读入内存?
【发布时间】:2012-03-31 21:33:41
【问题描述】:

我希望能够在 Windows Phone 7 上的 XNA 游戏中打开文件,而无需将整个文件读入内存。我正在尝试从 WAV 文件流式传输音频,以传递给 DynamicSoundEffectInstance 进行播放。

我现在使用的方法是使用 TitleContainer.OpenStream() 打开 WAV 文件,然后使用 ThreadPool.QueueUserWorkItem() 在后台线程上读取它。但是,这在开始时会导致问题,今天我验证了 TitleContainer.OpenStream() 返回一个 MS.Internal.InternalMemoryStream 对象,这表明它正在 OpenStream() 中将整个文件读入内存。

执行 Read() 和 Stream.BeginRead() (包含在WP7 作为异步 CTP 的一部分)在返回之前调用其回调。

有没有办法在 WP7 XNA 上打开文件而不将整个文件读入内存?如果不是,这完全是荒谬的。

【问题讨论】:

    标签: windows-phone-7 xna


    【解决方案1】:

    似乎没有办法做到这一点。但是,由于我知道要读取的块的大小(32kB),我可以将文件分成离线块并一次读取一个块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 2013-01-08
      • 2018-05-14
      • 2019-04-01
      • 2015-10-19
      • 1970-01-01
      相关资源
      最近更新 更多