2010-08-02 3 views
2

나는 증가하는 원본 파일 (mpeg 전송 스트림)에서 미디어를 재생할 수있는 사용자 지정 mediastreamsource를 작성했습니다. mediastream의 끝 부분에 도달하면 mediafile에서 새로운 길이를 읽고 샘플을 계속 전달합니다. MediaElement는 계속 재생됩니다.사용자 지정 MediaStreamSource 및 MediaElement.Naturalduration 속성

불행히도 MediaElement.NaturalDuration 속성을 업데이트하는 방법을 찾지 못했습니다. 따라서 ME는 "로드 된"영역을 찾지 못합니다. ME가 그것에 대해 알지 못하고 내 위치 변경을 NaturalDuration 값으로 설정하기 때문입니다.

새 스트림 길이를 가져온 후 ReportOpenMediaCompleted를 호출하려고했습니다. 그런 다음 Naturalduration이 업데이트되었지만 더 이상 재생할 수 없습니다.

다른 방법으로 처리 할 수 ​​있습니까?

+0

안녕 내가 앱의 소스 코드를 가지고있다? 내가 정말 호기심이 어려운 문제를 구현할 수있는 방법을 알고 ... 저도 같은 문제를 가지고,하지만 난 그것을 해결하지 못했습니다 :( 내가 그렇게 appriciated됩니다 당신이 나를 도와 주면 때문이다. 정말 고마워요. –

답변

1

은 언젠가 생활은 내 MediaStreamSource 초기화 때 MediaElement에에게 "환상"기간 값을주고 해결

:-) 너무 쉽게 할 수있는 유일한 방법이해야 할 왼쪽

protected override void OpenMediaAsync() 
{ 
... 
mediaSourceAttributes[MediaSourceAttributesKeys.Duration] = TimeSpan.FromHours(10).Ticks.ToString(CultureInfo.InvariantCulture); 
this.ReportOpenMediaCompleted(mediaSourceAttributes, mediaStreamDescriptions); 
} 

업데이트했습니다 내 슬라이더 컨트롤을 "실제"지속 시간으로 조정합니다. 는 지금은 ... 마법처럼 작동

는 Tila