문제

서버의 WPF 미디어 플레이어를 활용하여 사용자가 업로드하는 비디오에 대한 축소판을 생성하는 WCF 서비스를 작성하려고합니다. 프레임을 렌더링하고 파일에 저장하는 방법에 대한 많은 OIF 정보를 찾았습니다. 그러나 문제는 미디어 오픈 (실제로는 이벤트 중 어느 것도 없음) 묶어야하는 주요 이벤트입니다. 그렇지 않습니다 - 화재 편집.

WCF 서비스의 컨텍스트를 사용하는 경우 WPF 미디어 플레이어 이벤트가 발사되지 않는지 아는 사람이 있습니까?

고마워 마이클

도움이 되었습니까?

해결책

나는 Expression Media Encoder 2 SDK를 사용하기로 결정했고 훌륭하게 작동했습니다.

비디오에서 썸네일을 생성 할 코드가 거의 없습니다. 여기 스 니펫이 있습니다.

public void GenerateThumbnails(string fileName, int numberOfThumbnails)

{queue _positionStothumbnail = new queue (); microsoft.expression.encoder.mediatem Video = new Microsoft.expression.encoder.mediatem (filename);

var totalMilliseconds = video.FileDuration.TotalMilliseconds;

//create a queue of timespans for the thumbnails
for (int i = 0; i < numberOfThumbnails; i++)
{
    _positionsToThumbnail.Enqueue(TimeSpan.FromMilliseconds((((2 * i) + 1) * totalMilliseconds) / (2 * numberOfThumbnails)));
}

//create the thumbnails and save them to disk
while(_positionsToThumbnail.Count > 0)
{

    Bitmap bitMap = video.GetThumbnail(_positionsToThumbnail.Dequeue(), new System.Drawing.Size(100,100));
    bitMap.Save(@"F:\thumbs\" + _positionsToThumbnail.Count.ToString() + ".png", ImageFormat.Png);
}

}

다른 팁

해당 이벤트를 발사하려면 화면에 데이터를 렌더링해야 할 것입니다. 모두 WPF 시각적 트리의 일부와 관련이 있습니다. 서비스로 실행할 때는 그렇지 않습니다.

이것을 해결하려고 시도 할 수있는 방법에는 여러 가지가 있으며,이 모든 것이 복잡하고 확장되지 않을 것입니다. Windows Media SDK의 일반 Windows Media API를 사용하여 바닥에 도달하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top