سؤال

أنا أحاول إنشاء خدمة WCF التي تعزز WPF الوسائط الإعلامية على الخادم لتوليد الصور المصغرة للفيديو المستخدم التحميلات.لقد وجدت الكثير المنظمة على معلومات عن كيفية تقديم إطار وحفظه إلى ملف.ولكن المشكلة هي الحدث الرئيسي MediaOpened (في الواقع أيا من الأحداث) أنا بحاجة إلى التعادل في لا - تحرير النار.

لا أحد يعرف إذا كان WPF الوسائط الإعلامية الأحداث لا النار إذا استخدمت أيون سياق خدمة WCF?

شكرا مايكل

هل كانت مفيدة؟

المحلول

قررت أن محاولة استخدام تعبير Media Encoder 2 SDK و عملت كبيرة.

القليل جدا من رمز لتوليد الصور المصغرة من الفيديو هنا مقتطف

public void GenerateThumbnails(string fileName, int numberOfThumbnails)

{ طابور _positionsToThumbnail = انتظار جديدة();مايكروسوفت.التعبير.التشفير.MediaItem الفيديو = مايكروسوفت الجديد.التعبير.التشفير.MediaItem(اسم) ؛

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 API (من وسائط Windows SDK) للوصول إلى الجزء السفلي منه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top