Я пытаюсь внедрить faceTacker в гололинзы. Для этого я использую Hololens Camera Stream , потому что MediaCapture использует CaptureElement из XAML.
Моя проблема, когда я реализую видеокадр для FaceTracker, у меня появляется эта ошибка:
System.InvalidCastException: Unable to cast object of type 'System.__ComObject' to type 'Windows.Media.IVideoFrameStatics'.
at System.StubHelpers.StubHelpers.GetCOMIPFromRCW_WinRT(Object objSrc, IntPtr pCPCMD, IntPtr& ppTarget)
at Windows.Media.VideoFrame.CreateWithSoftwareBitmap(SoftwareBitmap bitmap)
at test02.OnFrameSampleAcquired(VideoCaptureSample sample)
И когда я пишу это в Google, у меня появляется результат о Windows Media Player, поэтому я понятия не имею, что это такое и как его решить ...
Вот мой код:
void OnFrameSampleAcquired(VideoCaptureSample sample)
{
if (frameSample == null || frameSample.Length < sample.dataLength)
{
frameSample = new byte[sample.dataLength];
}
sample.CopyRawImageDataIntoBuffer(frameSample);
IBuffer ibuffer = null;
if(frameSample != null)
ibuffer = frameSample.AsBuffer();
else
Debug.Log("frameSample null");
SoftwareBitmap softwareBitmapFrameSample = new SoftwareBitmap(BitmapPixelFormat.Nv12, this._resolution.width, this._resolution.height);
softwareBitmapFrameSample.CopyFromBuffer(ibuffer);
if(softwareBitmapFrameSample == null)
Debug.Log("Failed to create SoftwareBitmap");
else
Debug.Log("SoftwareBitmap success");
try
{
Debug.Log("BEFORE VIDEOfRAME");
VideoFrame videoFrameSample = VideoFrame.CreateWithSoftwareBitmap(softwareBitmapFrameSample);
}catch(Exception ex){
Debug.Log(ex);
}/*
UnityEngine.WSA.Application.InvokeOnAppThread(() =>
{
// faces = await this.faceTracker.ProcessNextFrameAsync();
}, false);*/
}
Спасибо за помощь