如何在 UWP 中显示 MJPEG 流
How do I display MJPEG stream in UWP
我有一个基于 HTTP 的 MJPEG 格式的视频流。
我尝试使用 MjpegProcessor https://channel9.msdn.com/coding4fun/articles/MJPEG-Decoder link。
根据提供的说明,我在我的项目中引用了 MjpegProcessor.winmd dll。但似乎 FrameReady 事件没有 Bitmap/BitmapImage 成员。我做错了什么?他们是否有任何其他方式在 UWP 中流式传输 MJPEG?
是的,在UWP中FrameReadyEventArgs
中没有Bitmap/BitmapImage
。在 UWP 应用程序中,我们应该像下面这样使用 FrameBuffer
属性:
private async void mjpeg_FrameReady(object sender, FrameReadyEventArgs e)
{
using (InMemoryRandomAccessStream ms = new InMemoryRandomAccessStream())
{
await ms.WriteAsync(e.FrameBuffer);
ms.Seek(0);
var bmp = new BitmapImage();
await bmp.SetSourceAsync(ms);
//image is the Image control in XAML
image.Source = bmp;
}
}
我有一个基于 HTTP 的 MJPEG 格式的视频流。
我尝试使用 MjpegProcessor https://channel9.msdn.com/coding4fun/articles/MJPEG-Decoder link。
根据提供的说明,我在我的项目中引用了 MjpegProcessor.winmd dll。但似乎 FrameReady 事件没有 Bitmap/BitmapImage 成员。我做错了什么?他们是否有任何其他方式在 UWP 中流式传输 MJPEG?
是的,在UWP中FrameReadyEventArgs
中没有Bitmap/BitmapImage
。在 UWP 应用程序中,我们应该像下面这样使用 FrameBuffer
属性:
private async void mjpeg_FrameReady(object sender, FrameReadyEventArgs e)
{
using (InMemoryRandomAccessStream ms = new InMemoryRandomAccessStream())
{
await ms.WriteAsync(e.FrameBuffer);
ms.Seek(0);
var bmp = new BitmapImage();
await bmp.SetSourceAsync(ms);
//image is the Image control in XAML
image.Source = bmp;
}
}