public void Load(string directory, string frameMask, string audioFilename)
        {
            Reset();

            if (!Directory.Exists("Recording/"))
            {
                Directory.CreateDirectory("Recording/");
            }

            _soundPlayer.Load(audioFilename);

            IEnumerable <string> files = Directory.EnumerateFiles("Recording/", "frame*.mfx");

            _filesToLoad = new List <string>(files.OrderBy(f => f));

            if (_filesToLoad.Count == 0)
            {
                Unload();
                return;
            }
            MotionFrameHeader header = _serializer.LoadHeader(_filesToLoad.FirstOrDefault());

            MinTimeUTC     = header.TimeUTC;
            CurrentTimeUTC = header.TimeUTC;

            header = _serializer.LoadHeader(_filesToLoad.LastOrDefault());

            MaxTimeUTC = header.TimeUTC;

            Seek(0);
            Status = PointCloudPlayerStatus.Stopped;
        }