Я бы хотел иметь возможность открыть файл на Windows Phone 7 в игре XNA, не считывая весь файл в память. Я пытаюсь передавать потоковое аудио из WAV-файлов для передачи в DynamicSoundEffectInstance для воспроизведения.
Метод, который я сейчас использую, использует TitleContainer.OpenStream (), чтобы открыть файл WAV, а затем читает его в фоновом потоке, используя ThreadPool.QueueUserWorkItem (). Однако это вызывает заминку в начале, и сегодня я убедился, что TitleContainer.OpenStream () возвращает объект MS.Internal.InternalMemoryStream, что предполагает, что он читает весь файл в память в OpenStream ().
Это подтверждается тем фактом, что, по-видимому, фактически не требуется времени (или только времени memcpy ()) для выполнения Read (), и что Stream.BeginRead () (который включен в WP7 как часть Async CTP) вызывает свой обратный вызов перед возвратом.
Есть ли способ открыть файл на WP7 XNA, не считывая все это в память? Если нет, то это совершенно нелепо.