ArtofKinect.Common.SoundPlayer.LoadWavStream C# (CSharp) Method

LoadWavStream() public method

public LoadWavStream ( Stream stream ) : void
stream Stream
return void
        public void LoadWavStream(Stream stream)
        {
            var inputStream = CreateInputStream(stream);
            playbackDevice.Init(new SampleToWaveProvider(inputStream));
        }

Usage Example

        public void Load(string filename)
        {
            Reset();

            if (!File.Exists(filename))
            {
                Unload();
                return;
            }

            lock (_zipFileLock)
            {
                if (_zipFile != null)
                {
                    _zipFile.Dispose();
                    _zipFile = null;
                }

                _zipFile = new ZipFile(filename);

                if (!_zipFile.EntryFileNames.Contains(descriptionFilename))
                {
                    Unload();
                    return;
                }

                var frameFiles = _zipFile.EntryFileNames.Where(s => s.Substring(s.Length - 3, 3) == "mfx");

                _filesToLoad = frameFiles.OrderBy(f => f).ToList();

                if (_filesToLoad.Count == 0)
                {
                    Unload();
                    return;
                }

                if (_zipFile.EntryFileNames.Contains(audioFilename))
                {
                    if (_audioStream != null)
                    {
                        _audioStream.Dispose();
                        _audioStream = null;
                    }
                    _audioStream = new MemoryStream();
                    _zipFile[audioFilename].Extract(_audioStream);
                    _audioStream.Position = 0;
                    _soundPlayer.LoadWavStream(_audioStream);
                }

                using (var settingsStream = new MemoryStream())
                {
                    _zipFile[descriptionFilename].Extract(settingsStream);
                    settingsStream.Position = 0;
                    var description = PointCloudStreamDescription.Load(settingsStream);

                    MinTimeUTC     = description.RecordingStartDateTimeUTC;
                    CurrentTimeUTC = MinTimeUTC;
                    MaxTimeUTC     = description.RecordingStopDateTimeUTC;

                    int count = description.FrameCount;
                    var span  = MaxTimeUTC - MinTimeUTC;
                    if (count > 0 && span.TotalSeconds > 0)
                    {
                        FileFPS = count / span.TotalSeconds;
                    }
                }
            }

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