private void RenderVisualization(short[] frame, AudioVisualizer audioVisualizer)
 {
     if (audioVisualizer != null)
     {
         var samples = new short[frame.Length / sizeof(short)];
         Buffer.BlockCopy(frame, 0, samples, 0, frame.Length);
         audioVisualizer.RenderVisualization(samples);
     }
 }
Esempio n. 2
0
 private static void RenderVisualization(short[] frame, int start, int length, AudioVisualizer audioVisualizer)
 {
     if (audioVisualizer != null)
     {
         var samples = new short[length];
         Buffer.BlockCopy(frame, start * sizeof(short), samples, 0, length * sizeof(short));
         audioVisualizer.RenderVisualization(samples);
     }
 }
Esempio n. 3
0
        public virtual void SubmitRecordedFrame(AudioContext ctx, byte[] frame)
        {
            var recordedFrame = new byte[frame.Length];

            Buffer.BlockCopy(frame, 0, recordedFrame, 0, frame.Length);
            RecordedFrames.Add(recordedFrame);
            if (mRecordedFrameCount++ % VisualizationRate == 0)
            {
                mAudioVisualizer.RenderVisualization(recordedFrame);
            }
        }
Esempio n. 4
0
 public virtual void GetNextAudioFrame(Action <MemoryStream> callback)
 {
     if (IsConnected)
     {
         if (mFrameIndex < Frames.Count)
         {
             byte[] frame = Frames[mFrameIndex++];
             if (mFrameIndex % VisualizationRate == 0)
             {
                 Deployment.Current.Dispatcher.BeginInvoke(() => mAudioVisualizer.RenderVisualization(frame));
             }
             callback(new MemoryStream(frame));
             return;
         }
         StopPlaying();
     }
     callback(new MemoryStream());
 }
Esempio n. 5
0
		protected void EchoCancelFrame(byte[] frame)
		{
			mEchoCancelFilter.Write(frame);
			bool moreFrames;
			do
			{
				var cancelledShorts = new short[frame.Length / sizeof(short)];
				if (mEchoCancelFilter.Read(cancelledShorts, out moreFrames))
				{
					var cancelledBytes = new byte[frame.Length];
					Buffer.BlockCopy(cancelledShorts, 0, cancelledBytes, 0, frame.Length);
					CancelledFrames.Add(cancelledBytes);
					if (mCancelledFrameCount++ % VisualizationRate == 0)
					{
						mCancelledAudioVisualizer.RenderVisualization(cancelledBytes);
					}
				}
			} while (moreFrames);
		}