Ho implementato un'applicazione C# che recupera il frame RGB al framerate di 30fps.Eccezione su BitmapFrame.Create (bug nel framework WPF?)
L'evento di telaio arrivano è gestito con questo codice:
void client_ColorFrameReady(object sender, ColorFrameReadyEventArgs e)
{
mycounter++;
Console.WriteLine("new frame received: " + mycounter);
if (writer != null)
{
count++;
if (count % 2== 0)
{
using (var frame = BitmapImage2Bitmap(e.ColorFrame.BitmapImage))
using (var thumb = ResizeBitmap(frame, 320, 240))
{
writer.WriteVideoFrame(thumb);
}
}
}
else
{
writer.Close();
}
}
con la condizione se riesco solo uno dei due telai.
Quando il mio codice di chiamata BitmapImage2Bitmap
ottengo questa eccezione:
L'eccezione in inglese dovrebbe essere:
A first chance exception of type 'System.NotSupportedException' occurred in `PresentationCore.dll`
Additional information: BitmapMetadata is not available on BitmapImage.
La cosa strana è che la mia applicazione funziona "bene", perché il i frame sono correttamente inseriti nel file di output.
Ho letto this, quindi il problema sembra un bug nel framework WPF.
Grazie @Hans. Ma ho un problema: la mia applicazione viene eseguita solo se compilata in modalità di debug, la modalità di rilascio causa l'arresto anomalo, quindi l'eccezione che ho sospettato potrebbe essere la causa del problema – GVillani82
No, stai cercando nell'angolo sbagliato per quel problema. –
Ok, grazie @Hans – GVillani82