diff --git a/SentryReplay.Tests/Fixtures/FakeCameraPlayer.cs b/SentryReplay.Tests/Fixtures/FakeCameraPlayer.cs
new file mode 100644
index 0000000..aa073b2
--- /dev/null
+++ b/SentryReplay.Tests/Fixtures/FakeCameraPlayer.cs
@@ -0,0 +1,98 @@
+namespace SentryReplay.Tests;
+
+///
+/// In-memory used to drive a real
+/// in tests without Flyleaf/FFmpeg.
+///
+internal sealed class FakeCameraPlayer : ICameraPlayer
+{
+ public event EventHandler Opened;
+ public event EventHandler Ended;
+ public event EventHandler Failed;
+ public event EventHandler PositionChanged;
+
+ public List OpenedPaths { get; } = [];
+ public List SeekPositions { get; } = [];
+ public bool OpenResult { get; init; } = true;
+ public bool ThrowOnStop { get; init; }
+ public TaskCompletionSource