internal void InitRun(AudioBase audioDevice, int defaultRate, Prompt prompt)
 {
     _audio       = audioDevice;
     _prompt      = prompt;
     _defaultRate = defaultRate;
     _actions     = (SPVESACTIONS.SPVES_RATE | SPVESACTIONS.SPVES_VOLUME);
 }
Exemple #2
0
 void ISpEngineSite.LoadResource(string uri, ref string mediaType, out IStream stream)
 {
     mediaType = null;
     try
     {
         Stream       stream2    = _site.LoadResource(new Uri(uri, UriKind.RelativeOrAbsolute), mediaType);
         BinaryReader br         = new BinaryReader(stream2);
         byte[]       waveFormat = AudioBase.GetWaveFormat(br);
         mediaType = null;
         if (waveFormat != null)
         {
             WAVEFORMATEX wAVEFORMATEX = WAVEFORMATEX.ToWaveHeader(waveFormat);
             WaveFormatId wFormatTag   = (WaveFormatId)wAVEFORMATEX.wFormatTag;
             if (wFormatTag == WaveFormatId.Pcm || (uint)(wFormatTag - 6) <= 1u)
             {
                 mediaType = "audio/x-wav";
             }
         }
         stream2.Position = 0L;
         stream           = new SpStreamWrapper(stream2);
     }
     catch
     {
         stream = null;
     }
 }
 internal override void End()
 {
     if (!_deviceOpen)
     {
         throw new InvalidOperationException();
     }
     _deviceOpen = false;
     if (!_aborted && _hasHeader)
     {
         long position = _stream.Position;
         AudioBase.WriteWaveHeader(_stream, _wfxOut, _startStreamPosition, _totalByteWrittens);
         _stream.Seek(position, SeekOrigin.Begin);
     }
 }
 internal override void Begin(byte[] wfx)
 {
     if (_deviceOpen)
     {
         throw new InvalidOperationException();
     }
     _wfxIn        = WAVEFORMATEX.ToWaveHeader(wfx);
     _doConversion = _pcmConverter.PrepareConverter(ref _wfxIn, ref _wfxOut);
     if (_totalByteWrittens == 0 && _hasHeader)
     {
         AudioBase.WriteWaveHeader(_stream, _wfxOut, _startStreamPosition, 0);
     }
     _bytesWritten = 0;
     _aborted      = false;
     _deviceOpen   = true;
 }