いつもお世話になっております。
Visual Studio2015 Windows Desktopを使いマイクで喋ったことを波形にして表示する物作成しているのですが
Form上にPlotViewを置いてデバックしてマイクに向かって喋ってもなにも表示されない状態です。
http://wildpie.hatenablog.com/entry/2014/09/24/000900
上記サイトを参考にさせて頂き制作していたのですがここでいきずまってしまい質問させていただきました。
ソースコードはこのような感じです。
using NAudio.Wave; using OxyPlot; using OxyPlot.Axes; using OxyPlot.Series; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace sound_wave_test { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { for (int i = 0; i < WaveIn.DeviceCount; i++) { var deviceInfo = WaveIn.GetCapabilities(i); this.label1.Text = String.Format("Device {0}: {1}, {2} channels", i, deviceInfo.ProductName, deviceInfo.Channels); } var waveIn = new WaveIn() { DeviceNumber = 0, // Default }; EventHandler<WaveInEventArgs> WaveIn_DataAvailable = null; waveIn.DataAvailable += WaveIn_DataAvailable; waveIn.WaveFormat = new WaveFormat(sampleRate: 8000, channels: 1); waveIn.StartRecording(); } private PlotModel _plotmodel = new PlotModel(); private LinearAxis _linearaxis1 = new LinearAxis { Position = AxisPosition.Bottom }; private LinearAxis _linearaxis2 = new LinearAxis { Minimum = -1.0, Maximum = 1.0, Position = AxisPosition.Left }; private LineSeries _lineSeries = new LineSeries(); List<float> _recorded = new List<float>(); // 音声データ private void InitPlot() { _plotmodel.Axes.Add(_linearaxis1); _plotmodel.Axes.Add(_linearaxis2); _plotmodel.Series.Add(_lineSeries); this.plotView1.Model = _plotmodel; } private void ProcessSample(float sample) { _recorded.Add(sample); if (_recorded.Count == 1024) { var points = _recorded.Select((v, index) => new DataPoint((double)index, v) ).ToList(); _lineSeries.Points.Clear(); _lineSeries.Points.AddRange(points); this.plotView1.InvalidatePlot(true); _recorded.Clear(); } } } }
エラーはでないのですが喋ってもなにも表示されない状態です。
何か足りないところがございますでしょうか?
ご教授お願い致します。
※追加
EventHandler<WaveInEventArgs> WaveIn_DataAvailable = null;
を消し、ProcessSampleにブレイクポイントを置いたら下記画像の内容が
表示されました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/30 05:30
2016/07/30 05:51
2016/07/30 06:12
2016/07/30 06:21
2016/07/30 06:38
2016/07/30 06:46
2016/07/30 07:08
2016/07/30 07:41
2016/07/30 08:15