代码之家  ›  专栏  ›  技术社区  ›  Doug Null

Logitech C920 USB网络摄像头的图像帧何时被UWP MediaFrameReader解码?

  •  0
  • Doug Null  · 技术社区  · 7 年前

    当我的Windows 10 uwp.net c_app的mediaframereader.frameReached事件接收到来自Logitech C920 USB网络摄像头的图像帧时,解压缩(解码)在哪里发生?

    在MediaframeReader.frameReached事件之前或在调用sender.TryAcquireRelatesFrame()时是否对相机中的帧进行解码?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Nico Zhu    7 年前

    在MediaframeReader.frameReached事件之前或在调用sender.TryAcquireRelatesFrame()时是否对相机中的帧进行解码?

    关于这个问题,你可以参考 Camera Frames 代码示例。从代码的角度来看。解压(解码)发生在 FrameArrived .

    private void FrameReader_FrameArrived(MediaFrameReader sender, MediaFrameArrivedEventArgs args)
    {
        // TryAcquireLatestFrame will return the latest frame that has not yet been acquired.
        // This can return null if there is no such frame, or if the reader is not in the
        // "Started" state. The latter can occur if a FrameArrived event was in flight
        // when the reader was stopped.
        using (var frame = sender.TryAcquireLatestFrame())
        {
            if (frame != null)
            {
                var renderer = _frameRenderers[frame.SourceKind];
                renderer.ProcessFrame(frame);
            }
        }
    }
    

    因为框架 contained SoftwareBitmap 。这意味着原始数据已被解码,然后打包为帧实例。

    推荐文章