2012-03-31 22 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),因此我可以將文件拆分爲離線塊,並一次讀取一塊。

相關問題