public ThroughputViewModel(IDBClientService dBClientService, IDataFileNode dn) { LoadedCommand = new DelegateCommand <Window>(OnLoaded); _dbClientService = dBClientService; _dataFileNode = dn; _throughputdata = _dbClientService.getTimeData(_dataFileNode, out intdata); _rmsData = _dbClientService.getRMS(dn.Id); SamplesALLT = _throughputdata[0].Length / dn.fs; MediaPlayCurPos = 0; int len = (int)(intdata[0].Length * 2) + 36; ValueTypeConverter.Int32ToByteArray(ref len, ref waveHeader, 4); len -= 36; ValueTypeConverter.Int32ToByteArray(ref len, ref waveHeader, 40); int fs = (int)dn.fs; ValueTypeConverter.Int32ToByteArray(ref fs, ref waveHeader, 24); int rate = 1 * fs * 2; ValueTypeConverter.Int32ToByteArray(ref rate, ref waveHeader, 28); Int16 block = 1 * 16 / 8; ValueTypeConverter.Int16ToByteArray(ref block, ref waveHeader, 32); _wavefn = dn.filename + dn.uploadDate.Ticks + ".wav"; _mplayer = new MediaPlayer(); _mplayer.Volume = 1; _mplayer.MediaEnded += _mplayer_MediaEnded; _mplayer.MediaFailed += _mplayer_MediaFailed; _mplayer.MediaOpened += _mplayer_MediaOpened; PlayPauseCommand = new DelegateCommand <object>(OnPlayPause); StopCommand = new DelegateCommand <object>(OnStop); }