Exemplo n.º 1
0
 public override IObservable <Mat> Process(IObservable <Mat> source)
 {
     return(Observable.Using(
                () => AudioManager.ReserveContext(DeviceName),
                resource =>
     {
         var buffer = resource.Context.ResourceManager.Load <Buffer>(BufferName);
         return source.Do(input => BufferHelper.UpdateBuffer(buffer.Id, input, SampleRate));
     }));
 }
Exemplo n.º 2
0
        public IObservable <Mat> Process(IObservable <AudioSource> audioSource, IObservable <Mat> dataSource)
        {
            return(Observable.Using(
                       () => AudioManager.ReserveContext(DeviceName),
                       resource => audioSource.SelectMany(source => dataSource.Do(input =>
            {
                var buffer = AL.GenBuffer();
                BufferHelper.UpdateBuffer(buffer, input, SampleRate);
                AL.SourceQueueBuffer(source.Id, buffer);

                source.ClearBuffers(0);
                if (AL.GetSourceState(source.Id) != ALSourceState.Playing)
                {
                    AL.SourcePlay(source.Id);
                }
            }))));
        }