본문 바로가기

Silverlight

Silverlight Bugs and Workarounds


http://blogs.msdn.com/silverlight_sdk/pages/silverlight-bugs-and-workarounds.aspx

잊지 말자 버그들..!!

얼마전에 아무 생각없이 고생한 부분이 있어 이렇게 링크를 걸어놉니다. 

정리하자면.

1. MultiScaleImage.AspectRatio 가 Custom MultiScaleTileSource를 썼을 경우 정확하지 않다는 것.
2. Mac에서 Safari3나 FireFox3로 MBR(Multi Bit Rate) Video Play시 Freezing.
3. Custom Control에 ScrollViewer.VerticalScrollBarVisibility/HorizontalScrollBarVisibility 속성 추가가 안됨.
4. 동적으로 Image 추가,삭제시 메모리 누수현상(제거시 Image.Source = null 로 셋팅)
5. 많은 컨트롤을 동시에 에니메이션할 경우 StackOverFlowException 발생. (Dispatcher.BeginInvoke를 통한 VisualStateManger.GotoState 호출)
6. 낮은 Bandwidth에서 Media를 빠르게 Seeking시의 깨짐 현상.
7. ImageSource나 ImageBrush 에 event 설정시 메모리 누수.(event listener 들 제거)
8. 파이어복스에서는 3GB 이상의 화일은 앞으로 Seek 가 되지 않음.
9. MAC에서는 3.5GB이상의 큰 화일은 Play가 되지 않음.(브라우저 지원문제)
10. BrowserHttpWebRequest 의 AllowReadStreamBuffering 속성이 false로 되어 MediaElement의 Source로 Stream 되는 경우 플레이 되지 않음.(AllowReadStreamBuffering를 true로 설정)
11. FireFox에서 '%'를 쓴 width,height 는 먹지 않음.
12. Brush를 상속받을 순 있으나 사용할 순 없음.(Brush는 상속받아서 쓰지 않는다.)

6번의 경우 얼마전에 저희 프로젝트에서도 문제가 되었는데... 원문에서는 ProgressDown에서 발생한다고 되어있는데실제로 Streaming의 경우에도 발생하였습니다. WorkAround 도 MediaFailed 이벤트시 Source를 다시 설정하고 예전 Position으로 다시 설정하면 된다고 되어있는데 Stream의 경우에는 MediaFailed 이벤트도 들어오지 않고 그냥 Closed 이벤트가 들어오더군요.

  그래서 제가 생각한 WorkAround는 Seek를 빨리 하지 못하도록 하는 것입니다. 한 0.3-0.5 초 정도의 지연만 주면 사용하기도 불편하지 않고 위와 같은 문제도 발생하지 않더군요.

  그럼 모두 삽질 금지..^^

                                                                                                                  - smile -