2012-03-31 61 views
2

我希望能够在XNA游戏中的Windows Phone 7上打开一个文件,而无需将整个文件读入内存。我试图从WAV文件流式传输音频,传递给DynamicSoundEffectInstance进行播放。XNA WP7 - 打开文件而不将它全部读入内存?

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

这可以通过它看起来没有时间(或者只有memcpy()的时间值)来执行Read()和Stream.BeginRead()(包含它在WP7上作为Async CTP的一部分)在返回之前调用其回调函数。

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

回答

0

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

相关问题