나는 동일한 기능을 가진 2 가지 방법이있다. 벌레인가, 아니면 뭔가 빠졌는가? 두 번째가 비어있는 동안 URL이있는 첫 번째 버전은 그림과 정상 스트림을 제공합니다 http://icdn.lenta.ru/images/2014/09/17/10/20140917102331786/pic_ffa73ea27023b3e69b6cef4d068c0499.jpg
InMemoryRandomAccessStream 잘못된 동작
UPD : 나는 16384 이하의 크기를 가진 파일이 위험에 노출되어 있음을 발견했습니다
. AsStreamForWrite 설명서에서이 16384 값을 발견했습니다. @Kiewic, 도 해결 방법을 제안했습니다. 아직도 그것이 작동하지 않는 이유를 알고 싶습니다.
UPD2 : Connect에서 bug report을 생성했습니다.
당신이 변수에Stream
을 지킬 때 의미가 있습니다
AsStreamForWrite의 언어 프로젝션() 매우 추한입니다. WinRT 스트림은 .NET 스트림과 잘 맞지 않으므로 차이점을 설명하는 데 많은 코드가 필요합니다. 다른 종류의 스트림을 다루는 특수한 경우가 많으며 이전 전화 릴리스의 차이점을 숨기는 코드도 있습니다. 움직이는 부분이 너무 많으면 버그가 발생할 가능성이 큽니다. BitmapSource.SetSourceAsync()를 사용하면 많은 양의 메모리를 씹는 것을 피하는 것이 중요합니다. 작동하는 코드를 고수하는 것이 가장 좋습니다. –
@HansPassant, 비 UI 스레드에서 BitmapImage를 만들 수 없습니다. – ixSci
그냥 믿는다 : 대답이 필요 없다. Windows 런타임 유형을 .NET 클래스로 변환하는 데 필요한 모든 헬퍼를 사용하지 않으려면 가능한 모든 작업을 수행하십시오. 이유를 알고 싶다면 [이 스레드] (http://social.msdn.microsoft.com/Forums/windowsapps/en-US/37ac0ed7-1884-4251-9914-07fae6467b98/mediastreamsource-not-working- proper-in-windows-phone-81)로 끝납니다. Windows 런타임을 .NET으로 변환하는 것을 포기할 경우 무작위 OutOfMemoryExceptions를 포함한 많은 문제를 피할 수 있습니다. – Alovchin