Exemplo n.º 1
0
        protected virtual IMFSourceReader CreateReader(MediaFoundationReader.MediaFoundationReaderSettings settings)
        {
            IMFSourceReader imfsourceReader;

            MediaFoundationInterop.MFCreateSourceReaderFromURL(this.file, null, out imfsourceReader);
            imfsourceReader.SetStreamSelection(-2, false);
            imfsourceReader.SetStreamSelection(-3, true);
            MediaType mediaType = new MediaType();

            mediaType.MajorType = MediaTypes.MFMediaType_Audio;
            mediaType.SubType   = (settings.RequestFloatOutput ? AudioSubtypes.MFAudioFormat_Float : AudioSubtypes.MFAudioFormat_PCM);
            imfsourceReader.SetCurrentMediaType(-3, IntPtr.Zero, mediaType.MediaFoundationObject);
            return(imfsourceReader);
        }
Exemplo n.º 2
0
        public MediaFoundationReader(string file, MediaFoundationReader.MediaFoundationReaderSettings settings)
        {
            MediaFoundationApi.Startup();
            this.settings = settings;
            this.file     = file;
            IMFSourceReader imfsourceReader = this.CreateReader(settings);

            this.waveFormat = this.GetCurrentWaveFormat(imfsourceReader);
            imfsourceReader.SetStreamSelection(-3, true);
            this.length = this.GetLength(imfsourceReader);
            if (settings.SingleReaderObject)
            {
                this.pReader = imfsourceReader;
            }
        }