protected override void OpenMediaAsync() { // Create a parser _RiffParser = new WavRiffParser(_stream); // Parse the header _RiffParser.ParseWAVEHeader(); _RiffParser.wfx.ValidateWaveFormat(); _startPosition = _currentPosition = _RiffParser.DataPosition; // Init Dictionary <MediaStreamAttributeKeys, string> streamAttributes = new Dictionary <MediaStreamAttributeKeys, string>(); Dictionary <MediaSourceAttributesKeys, string> sourceAttributes = new Dictionary <MediaSourceAttributesKeys, string>(); List <MediaStreamDescription> availableStreams = new List <MediaStreamDescription>(); // Stream Description streamAttributes[MediaStreamAttributeKeys.CodecPrivateData] = _RiffParser.wfx.ToHexString(); // wfx MediaStreamDescription msd = new MediaStreamDescription(MediaStreamType.Audio, streamAttributes); _audioDescription = msd; availableStreams.Add(_audioDescription); sourceAttributes[MediaSourceAttributesKeys.Duration] = _RiffParser.Duration.ToString(); ReportOpenMediaCompleted(sourceAttributes, availableStreams); }
protected override void CloseMedia() { _startPosition = _currentPosition = 0; _RiffParser = null; _audioDescription = null; }