Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 protected override void CloseMedia()
 {
     _startPosition    = _currentPosition = 0;
     _RiffParser       = null;
     _audioDescription = null;
 }