Blazor Hybrid — .NET 8: Videos im Hintergrund abspielen — UI-Thread Problem und meine “unschöne” Lösung

Paul Willy Hammer
5 min readJun 17, 2024

Ich entwickle derzeit eine App und arbeite gerade daran, den Login-Screen zu verbessern. Für die App-Entwicklung nutze ich Blazor Hybrid. Um den Login-Screen visuell ansprechender zu gestalten, beschloss ich, ein Video im Hintergrund abzuspielen.

Note: The US English version of this article is available at the following link: Click here

Dies erwies sich jedoch als Herausforderung. Nach etlichen Versuchen, das Video auf iOS im Hintergrund abzuspielen, gelang es mir schließlich, jedoch mit einem hässlichen Nebeneffekt: Die App begann zu hängen, und das Video wurde nicht flüssig abgespielt. Dies deutet meist darauf hin, dass der UI-Thread blockiert wird. Eine herbe Enttäuschung. Wie auch immer, das ist wohl etwas, was das großartige .NET MAUI-Team in Zukunft beheben könnte.

In diesem Artikel erfahrt ihr, wie ich das Problem mit einem Profiler identifiziert habe und wie ich es mit einem Workaround umgehe. Warum nutze ich jetzt einfach einen Workaround? → Ganz klar: Ich muss fertig werden und das Video ist nur 20 MB groß.

Analyse des Problems mit dem Profiler:

Um das Problem zu analysieren, wollte ich zunächst JetBrains Rider dotTrace verwenden. Leider musste ich feststellen, dass dieser nur macOS- und Windows-Programme im .NET MAUI-Szenario unterstützt. Zum Glück gibt es eine tolle Community, die das Tool “.NET…

--

--

Paul Willy Hammer

PWH, a senior software developer, excels in creating efficient .NET applications, always eager to share insights and best practices in software development.