private void Config2() { int hr; IAMMultiMediaStream mms = (IAMMultiMediaStream) new AMMultiMediaStream(); IMediaStream pStream = null; hr = mms.Initialize(StreamType.Read, AMMMultiStream.None, null); MsError.ThrowExceptionForHR(hr); hr = mms.AddMediaStream(null, MSPID.PrimaryAudio, AMMStream.None, pStream); MsError.ThrowExceptionForHR(hr); hr = mms.EnumMediaStreams(0, out pStream); MsError.ThrowExceptionForHR(hr); m_ams = pStream as IAudioMediaStream; }
private void Config() { int hr; IAMMultiMediaStream amms = (IAMMultiMediaStream) new AMMultiMediaStream(); IMultiMediaStream mms = (IMultiMediaStream)amms; IMediaStream pStream = null; hr = amms.AddMediaStream(null, MSPID.PrimaryAudio, AMMStream.None, pStream); MsError.ThrowExceptionForHR(hr); hr = amms.OpenFile("foo.avi", AMOpenModes.RenderAllStreams); MsError.ThrowExceptionForHR(hr); hr = mms.EnumMediaStreams(0, out pStream); MsError.ThrowExceptionForHR(hr); m_ams = pStream as IAudioMediaStream; }
public int SetMediaStream(IMediaStream pMediaStream) { if (pMediaStream == null) { throw new ArgumentNullException("pMediaStream"); } if (IsValid) { throw new InvalidOperationException("Instance is already active."); } int hr = MSStatus.MS_E_HANDLE; _pAudioStream = pMediaStream as IAudioMediaStream; if (_pAudioStream != null) { hr = _pAudioStream.GetFormat(out _wfmt); if (MSStatus.Succeed(hr)) { AMAudioData amAudio = new AMAudioData(); _pAudioData = (IAudioData)amAudio; hr = _pAudioData.SetFormat(ref _wfmt); } else { _pAudioStream = null; } } return hr; }
public int ReleaseMediaStream() { int hr = MSStatus.MS_S_FALSE; if (IsValid) { hr = CompletionStatus((int)COMPLETION_STATUS_FLAGS.COMPSTAT_ABORT, System.Threading.Timeout.Infinite); if ( MSStatus.Succeed(hr) ) { _pAudioSample = null; Marshal.ReleaseComObject(_pAudioStream); _pAudioStream = null; Marshal.FinalReleaseComObject(_pAudioData); _pAudioData = null; } } return hr; }
private void Config3() { m_ams = (IAudioMediaStream) new AMAudioStream(); }