private void EnableButtons(bool state) { WvlLogger.Log(LogType.TraceAll, "EnableButtons()"); WvlLogger.Log(LogType.TraceValues, "isRecording : " + isRecording.ToString() + " - isPlaying : " + isPlaying.ToString()); if (isRecording || isPlaying) { WvlLogger.Log(LogType.TraceAll, "EnableButtons : case 1 "); EnableButton(Resource.Id.btnStart, !state); EnableButton(Resource.Id.btnStop, state); if (hasRecord) { EnableButton(Resource.Id.btnPlay, !state); } else { EnableButton(Resource.Id.btnPlay, false); } } else { WvlLogger.Log(LogType.TraceAll, "EnableButtons : case 2 "); EnableButton(Resource.Id.btnStart, !state); EnableButton(Resource.Id.btnStop, state); if (hasRecord) { EnableButton(Resource.Id.btnPlay, !state); EnableButton(Resource.Id.btnSendWav, !state); } else { EnableButton(Resource.Id.btnPlay, state); EnableButton(Resource.Id.btnSendWav, state); } } }
private void SetButtonHandlers() { WvlLogger.Log(LogType.TraceAll, "SetButtonHandlers()"); ((Button)FindViewById(Resource.Id.btnStart)).Click += delegate { WvlLogger.Log(LogType.TraceAll, "Start Recording clicked"); EnableButtons(true); StartRecording(); }; ((Button)FindViewById(Resource.Id.btnStop)).Click += delegate { WvlLogger.Log(LogType.TraceAll, "Start Recording clicked"); EnableButtons(false); StopRecording(); }; ((Button)FindViewById(Resource.Id.btnSendWav)).Click += async delegate { WvlLogger.Log(LogType.TraceAll, "Send Wav clicked"); EnableButtons(false); var wvlService = new WvlService(); if (wavFileName != "") { await wvlService.PostAudioFile(wavFileName); //var res = await wvlService.PostTest(); } }; }
//public void AppenData(int[] data) public void UpdateHeatmapDataSeries(int[] data) { WvlLogger.Log(LogType.TraceAll, "UpdateHeatmapDataSeries()"); //WvlLogger.Log(LogType.TraceAll,"UpdateHeatmapDataSeries - Width : " + width.ToString() + " - Height : " + height.ToString()); WvlLogger.Log(LogType.TraceValues, "UpdateHeatmapDataSeries() - Data before Array.Copy() : " + Data.Sum().ToString()); var spectrogramSize = width * height; var fftSize = data.Length; var offset = spectrogramSize - fftSize; xChart2count = samplesUpdatedCount * data.Length; WvlLogger.Log(LogType.TraceValues, "UpdateHeatmapDataSeries() - set offset : " + offset.ToString()); try { Array.Copy(Data, fftSize, Data, 0, offset); Array.Copy(data, 0, Data, offset, fftSize); WvlLogger.Log(LogType.TraceValues, "UpdateHeatmapDataSeries() - Data after Array.Copy() : " + Data.Sum().ToString()); heatmapSeries.UpdateZValues(Data); WvlLogger.Log(LogType.TraceAll, "UpdateSamplesDataSeries() - UpdateZValues()"); } catch (Exception e) { WvlLogger.Log(LogType.TraceExceptions, "UpdateSamplesDataSeries() - exception : " + e.ToString()); } }
private void DeleteTempFile() { WvlLogger.Log(LogType.TraceAll, "DeleteTempFile()"); File file = new File(GetTempFilename()); file.Delete(); }
private void WriteWaveFileHeader(FileOutputStream fos, long totalAudioLen, long totalDataLen, long longSampleRate, int channels, long byteRate) { WvlLogger.Log(LogType.TraceAll, "WriteWaveFileHeader()"); try { byte[] header = new byte[44]; header[0] = (byte)'R'; // RIFF/WAVE header header[1] = (byte)'I'; header[2] = (byte)'F'; header[3] = (byte)'F'; header[4] = (byte)(totalDataLen & 0xff); header[5] = (byte)((totalDataLen >> 8) & 0xff); header[6] = (byte)((totalDataLen >> 16) & 0xff); header[7] = (byte)((totalDataLen >> 24) & 0xff); header[8] = (byte)'W'; header[9] = (byte)'A'; header[10] = (byte)'V'; header[11] = (byte)'E'; header[12] = (byte)'f'; // 'fmt ' chunk header[13] = (byte)'m'; header[14] = (byte)'t'; header[15] = (byte)' '; header[16] = 16; // 4 bytes: size of 'fmt ' chunk header[17] = 0; header[18] = 0; header[19] = 0; header[20] = 1; // format = 1 header[21] = 0; header[22] = (byte)channels; header[23] = 0; header[24] = (byte)(longSampleRate & 0xff); header[25] = (byte)((longSampleRate >> 8) & 0xff); header[26] = (byte)((longSampleRate >> 16) & 0xff); header[27] = (byte)((longSampleRate >> 24) & 0xff); header[28] = (byte)(byteRate & 0xff); header[29] = (byte)((byteRate >> 8) & 0xff); header[30] = (byte)((byteRate >> 16) & 0xff); header[31] = (byte)((byteRate >> 24) & 0xff); header[32] = (byte)(2 * 16 / 8); // block align header[33] = 0; header[34] = (byte)RECORDER_BPP; // bits per sample header[35] = 0; header[36] = (byte)'d'; header[37] = (byte)'a'; header[38] = (byte)'t'; header[39] = (byte)'a'; header[40] = (byte)(totalAudioLen & 0xff); header[41] = (byte)((totalAudioLen >> 8) & 0xff); header[42] = (byte)((totalAudioLen >> 16) & 0xff); header[43] = (byte)((totalAudioLen >> 24) & 0xff); fos.Write(header, 0, 44); } catch (System.Exception e) { WvlLogger.Log(LogType.TraceExceptions, "WriteWaveFileHeader() - Exception: " + e.ToString()); } }
private void StartRecording() { WvlLogger.Log(LogType.TraceAll, "StartRecording()"); //recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, // RECORDER_SAMPLERATE, RECORDER_CHANNELS, RECORDER_AUDIO_ENCODING, bufferSize); recorder = new AudioRecord(AudioSource.Mic, RECORDER_SAMPLERATE, (ChannelIn)RECORDER_CHANNELS, (Android.Media.Encoding)RECORDER_AUDIO_ENCODING, bufferSize); int i = (int)recorder.State; if (i == 1) { recorder.StartRecording(); } isRecording = true; /* * recordingThread = new Thread(new Runnable() { * @Override * public void run() * { * writeAudioDataToFile(); * } * },"AudioRecorder Thread"); * recordingThread.start(); */ recordingThread = new System.Threading.Thread(new ThreadStart( WriteAudioDataToFile )); recordingThread.Start(); }
public void PrepareHeatmapDataSeries(int[] data) { WvlLogger.Log(LogType.TraceAll, "PrepareHeatmapDataSeries()"); int width = 512; int height = 512; int[] Data = new int[width * height]; //WvlLogger.Log(LogType.TraceAll,"UpdateHeatmapDataSeries - Width : " + width.ToString() + " - Height : " + height.ToString()); WvlLogger.Log(LogType.TraceValues, "PrepareHeatmapDataSeries() - Data before Array.Copy() : " + Data.Sum().ToString()); var spectrogramSize = width * height; var fftSize = data.Length; var offset = spectrogramSize - fftSize; WvlLogger.Log(LogType.TraceValues, "PrepareHeatmapDataSeries() - set offset : " + offset.ToString()); try { Array.Copy(Data, fftSize, Data, 0, offset); Array.Copy(data, 0, Data, offset, fftSize); WvlLogger.Log(LogType.TraceValues, "PrepareHeatmapDataSeries() - Data after Array.Copy() : " + Data.Sum().ToString()); //heatmapSeries.UpdateZValues(Data); samplesUpdated(this, new SamplesUpdatedEventArgs(Data)); WvlLogger.Log(LogType.TraceAll, "PrepareHeatmapDataSeries() - UpdateZValues()"); } catch (System.Exception e) { WvlLogger.Log(LogType.TraceExceptions, "PrepareHeatmapDataSeries() - exception : " + e.ToString()); } }
private byte[] FileToByteArray2(string fullFilePath) { WvlLogger.Log(LogType.TraceAll, "FileToByteArray2()"); byte[] bytes = System.IO.File.ReadAllBytes(fullFilePath); WvlLogger.Log(LogType.TraceValues, "FileToByteArray2() - bytes : " + bytes.Length.ToString()); return(bytes); }
//public int[] FFT(int[] y) public async Task <int[]> FFT(int[] y) { WvlLogger.Log(LogType.TraceAll, "FFT()"); var input = new AForge.Math.Complex[y.Length]; for (int i = 0; i < y.Length; i++) { input[i] = new AForge.Math.Complex(y[i], 0); } FourierTransform.FFT(input, FourierTransform.Direction.Forward); var result = new int[y.Length / 2]; // getting magnitude for (int i = 0; i < y.Length / 2 - 1; i++) { var current = Math.Sqrt(input[i].Re * input[i].Re + input[i].Im * input[i].Im); current = Math.Log10(current) * 10; result[i] = (int)current; } samplesUpdated(this, new SamplesUpdatedEventArgs(result)); //PrepareHeatmapDataSeries(result); return(result); }
private void UpdateFFTDataSeries(int[] fftValues) { WvlLogger.Log(LogType.TraceAll, "UpdateFFTDataSeries()"); var xArray = new int[fftValues.Length]; for (int i = 0; i < fftValues.Length; i++) { xArray[i] = i; } try { if (fftDataSeries.Count == 0) { fftDataSeries.Append(xArray, fftValues); WvlLogger.Log(LogType.TraceValues, "UpdateSamplesDataSeries() - xarray : " + xArray.Length.ToString() + " - fftValues : " + fftValues.Sum().ToString()); } else { fftDataSeries.UpdateRangeYAt(0, fftValues); WvlLogger.Log(LogType.TraceValues, "UpdateSamplesDataSeries() - 0 - fftValues : " + fftValues.Sum().ToString()); } } catch (Exception e) { WvlLogger.Log(LogType.TraceExceptions, "UpdateFFTDataSeries() - exception : " + e.ToString()); } }
protected async Task PlayAudioTrackAsync() { WvlLogger.Log(LogType.TraceAll, "PlayAudioTrackAsync()"); WvlLogger.Log(LogType.TraceValues, "PlayAudioTrackAsync() - buffer.Length : " + buffer.Length.ToString()); audioTrack = new AudioTrack( // Stream type Android.Media.Stream.Music, // Frequency 44100, // Mono or stereo ChannelOut.Mono, // Audio encoding Android.Media.Encoding.Pcm16bit, // Length of the audio clip. buffer.Length, // Mode. Stream or static. AudioTrackMode.Stream); try { audioTrack.Play(); } catch (Exception ex) { WvlLogger.Log(LogType.TraceAll, "PlayAudioTrackAsync() - audioTrack.Play() excetion : " + ex.ToString()); } //await audioTrack.WriteAsync(buffer, 0, buffer.Length); await audioTrack.WriteAsync(buffer, 0, buffer.Length); }
public async Task PostAudioFile(string fileName = null) { WvlLogger.Log(LogType.TraceAll, "PostAudioFile() - fileName : " + fileName); using (HttpClient client = new HttpClient()) { /* * Stream stream = await File.OpenAsync(FileAccess.ReadWrite); * var file = File.Open(fileName, FileMode.Open, FileAccess.Read); */ /* * Java.IO.File file = new Java.IO.File(fileName); * FileInputStream fileInputStream = new FileInputStream(file); * * var content = new MultipartFormDataContent(); * content.Add(new StreamContent(fileInputStream), "AudioFile", fileName); * content.Add(new StreamContent()) * * HttpResponseMessage response = await client.PostAsync(url, content); * * await response.Content.ReadAsStringAsync(); */ try { /* * WvlLogger.Log(LogType.TraceAll,"PostAudioFile() - Create client.DefaultRequestHeaders"); * client.DefaultRequestHeaders.Clear(); * client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("multipart/form-data")); * client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "multipart/form-data"); */ //client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json"); WvlLogger.Log(LogType.TraceAll, "PostAudioFile() - MultipartFormDataContent"); fileName = FilesHelper.GetFilename(); byte[] b1 = FileToByteArray(fileName); byte[] b2 = FileToByteArray2(fileName); MultipartFormDataContent formData = new MultipartFormDataContent(); formData.Add(new StringContent("rotating_machine"), "machine_type"); formData.Add(new StringContent("My machine"), "machine_name"); formData.Add(new StringContent("My campaign"), "campaign_name"); formData.Add(new StringContent("Pierre-Christophe"), "user_name"); formData.Add(new ByteArrayContent(b1, 0, b1.Length), "audio_file", "audio.wav"); WvlLogger.Log(LogType.TraceAll, "PostAudioFile() - client.PostAsync()"); var responseObj = await client.PostAsync(url, formData).ConfigureAwait(false); WvlLogger.Log(LogType.TraceAll, "PostAudioFile() - Response : " + responseObj.ToString()); } catch (Exception ex) { WvlLogger.Log(LogType.TraceExceptions, "PostAudioFile() - Exception : " + ex.ToString()); } } }
private void EnableButton(int id, bool isEnable) { WvlLogger.Log(LogType.TraceAll, "EnableButton()"); var button = ((Button)FindViewById(id)); WvlLogger.Log(LogType.TraceValues, "Button : " + button.ToString() + " - isEnable : " + isEnable.ToString()); //((Button)FindViewById(id)).Enabled = isEnable; button.Enabled = isEnable; }
public void StopPlaying() { WvlLogger.Log(LogType.TraceAll, "StopPlaying()"); if (audioTrack != null) { audioTrack.Stop(); audioTrack.Release(); audioTrack = null; } }
private byte[] FileToByteArray(string fullFilePath) { WvlLogger.Log(LogType.TraceAll, "FileToByteArray()"); FileStream fs = System.IO.File.OpenRead(fullFilePath); byte[] bytes = new byte[fs.Length]; fs.Read(bytes, 0, Convert.ToInt32(fs.Length)); fs.Close(); WvlLogger.Log(LogType.TraceValues, "FileToByteArray() - bytes : " + bytes.Length.ToString()); return(bytes); }
//public async Task StopRecordAsync() public void StopRecord() { WvlLogger.Log(LogType.TraceAll, "StopRecordAsync()"); endRecording = true; Thread.Sleep(250); // Give it time to drop out. /* * audioRecord.Stop(); * audioRecord = null; */ }
private void WriteAudioDataToFile() { WvlLogger.Log(LogType.TraceAll, "WriteAudioDataToFile()"); byte[] data = new byte[bufferSize]; string filename = GetTempFilename(); FileOutputStream fos = null; try { fos = new FileOutputStream(filename); } catch (FileNotFoundException e) { // TODO Auto-generated catch block //e.printStackTrace(); WvlLogger.Log(LogType.TraceExceptions, e.ToString()); } int read = 0; if (null != fos) { while (isRecording) { read = recorder.Read(data, 0, bufferSize); //if (AudioRecord.ERROR_INVALID_OPERATION != read) if ((int)RecordStatus.ErrorInvalidOperation != read) { try { fos.Write(data); } catch (IOException e) { //e.printStackTrace(); WvlLogger.Log(LogType.TraceExceptions, "WriteAudioDataToFile - Exception on os.Write() : " + e.ToString()); } } } try { fos.Close(); } catch (IOException e) { //e.printStackTrace(); WvlLogger.Log(LogType.TraceExceptions, "WriteAudioDataToFile - Exception on os.Close() : " + e.ToString()); } } }
private void AudioService_samplesUpdated(object sender, System.EventArgs e) //private async void AudioService_samplesUpdated(object sender, System.EventArgs e) { WvlLogger.Log(LogType.TraceAll, "AudioService_samplesUpdated()"); var audioService = (WavAudioService)sender; if (token.IsCancellationRequested) { WvlLogger.Log(LogType.TraceAll, "AudioService_samplesUpdated() - token.IsCancellationRequested"); audioService.StopRecording(); return; } var arguments = e as SamplesUpdatedEventArgs; if (arguments != null) { WvlLogger.Log(LogType.TraceAll, "AudioService_samplesUpdated() - arguments != null"); var samples = arguments.UpdatedSamples; /* * //if (samples.Length < samplesCount) * if (samples.Length < (samplesCount / 2)) * { * WvlLogger.Log(LogType.TraceValues, "AudioService_samplesUpdated() - samples.Length < samplesCount - sample.Length : " + samples.Length.ToString() + " samplesCount : " + samplesCount.ToString()); * return; * } */ WvlLogger.Log(LogType.TraceValues, "AudioService_samplesUpdated() - sample.Length : " + samples.Length.ToString()); /* * //samplesDataSeries.YValues = samples; * //UpdateSamplesDataSeries(samples); * * var fftValues = await audioService.FFT(samples); * * //fftDataSeries.YValues = fftValues; * //UpdateFFTDataSeries(fftValues); */ //heatmapSeries.AppenData(fftValues); //UpdateHeatmapDataSeries(fftValues); //UpdateHeatmapDataSeries(samples); System.Threading.Thread thread = new System.Threading.Thread(() => UpdateHeatmapDataSeries(samples)); thread.Priority = System.Threading.ThreadPriority.Highest; thread.Start(); } }
//void OnNext() async void OnNext() { WvlLogger.Log(LogType.TraceAll, "OnNext()"); /* * short[] audioBuffer = new short[2048]; * //short[] audioBuffer = new short[1024]; * //audioRecord.Read(audioBuffer, 0, audioBuffer.Length); * * audioRecordCharts.Read(audioBuffer, 0, audioBuffer.Length); * WvlLogger.Log(LogType.TraceValues, "OnNext() - audioRecordCharts.Read() - audioBUffer : " + audioBuffer.Length.ToString()); * int[] result = new int[audioBuffer.Length]; * for (int i = 0; i < audioBuffer.Length; i++) * { * result[i] = (int)audioBuffer[i]; * } * bufferCount++; * if (cumulBufferShort != null) * cumulBufferShort = ArraysHelper.Combine(cumulBufferShort, audioBuffer); * else * cumulBufferShort = ArraysHelper.Init(audioBuffer); * * samplesUpdated(this, new SamplesUpdatedEventArgs(result)); */ //byte[] audioBufferDebug = new byte[2048]; byte[] audioBufferDebug = new byte[1024]; bufferCount++; audioRecord.Read(audioBufferDebug, 0, audioBufferDebug.Length); if (cumulBufferByte != null) { cumulBufferByte = ArraysHelper.Combine(cumulBufferByte, audioBufferDebug); } else { cumulBufferByte = ArraysHelper.Init(audioBufferDebug); } int[] bytesAsInts = Array.ConvertAll(audioBufferDebug, c => (int)c); samplesUpdated(this, new SamplesUpdatedEventArgs(bytesAsInts)); /* * samplesUpdatedThread = new Thread(() => samplesUpdated(this, new SamplesUpdatedEventArgs(bytesAsInts))); * samplesUpdatedThread.Start(); */ //var res = FFT(bytesAsInts); }
public void StopRecording() { WvlLogger.Log(LogType.TraceAll, "StopRecording()"); if (null != audioRecord) { isRecording = false; if (audioRecord.State == State.Initialized) { audioRecord.Stop(); } audioRecord.Release(); audioRecord = null; recordingThread = null; } /* * if (null != audioRecordCharts) * { * if (audioRecordCharts.State == State.Initialized) * { * audioRecordCharts.Stop(); * * // Write file after recording * isWriting = true; * WriteAudioDataToFileAfterRecording(); * } * audioRecordCharts.Release(); * * audioRecordCharts = null; * chartsThread = null; * * samplesUpdatedThread = null; * } */ /* * if (audioRecordCharts.State == State.Initialized) * { * audioRecordCharts.Stop(); * WriteAudioDataToFileAfterRecording(); * } * audioRecordCharts.Release(); */ CopyWaveFile(GetTempFilename(), GetFilename()); //DeleteTempFile(); }
/// <summary> /// Another test of WebService call /// (https://stackoverflow.com/questions/21569770/wrong-content-type-header-generated-using-multipartformdatacontent) /// </summary> /// <returns></returns> public async Task <string> PostTest() { WvlLogger.Log(LogType.TraceAll, "PostTest()"); string servResp = ""; string boundary = "----CustomBoundary" + DateTime.Now.Ticks.ToString("x"); WvlLogger.Log(LogType.TraceAll, "PostTest() - MultipartFormDataContent"); using (var content = new MultipartFormDataContent(boundary)) { WvlLogger.Log(LogType.TraceValues, "PostTest() - MultipartFormDataContent.Headers : " + content.Headers.Count().ToString() + " // " + content.Headers.ToString()); content.Headers.Remove("Content-Type"); content.Headers.TryAddWithoutValidation("Content-Type", "multipart/form-data; boundary=" + boundary); WvlLogger.Log(LogType.TraceValues, "PostTest() - MultipartFormDataContent.Headers : " + content.Headers.Count().ToString() + " // " + content.Headers.ToString()); content.Add(new StringContent("rotating_machine"), "machine_type"); content.Add(new StringContent("My machine"), "machine_name"); content.Add(new StringContent("My campaign"), "campaign_name"); content.Add(new StringContent("Pierre-Christophe"), "user_name"); WvlLogger.Log(LogType.TraceAll, "PostTest() - HttpClientHandler"); HttpClientHandler handler = new HttpClientHandler(); var cookieContainer = new CookieContainer(); handler.CookieContainer = cookieContainer; WvlLogger.Log(LogType.TraceAll, "PostTest() - HttpRequestMessage"); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "http://51.254.131.100/api/recordings/"); request.Headers.ExpectContinue = false; request.Content = content; try { WvlLogger.Log(LogType.TraceAll, "PostTest() - HttpClient"); var httpClient = new HttpClient(handler); HttpResponseMessage response = await httpClient.SendAsync(request); WvlLogger.Log(LogType.TraceValues, "PostTest() - HttpClient.SendAsync() - response : " + response.ToString()); response.EnsureSuccessStatusCode(); servResp = await response.Content.ReadAsStringAsync(); } catch (Exception ex) { WvlLogger.Log(LogType.TraceExceptions, "PostTest() - Exception : " + ex.ToString()); } } return(servResp); }
private void CopyWaveFile(string inFilename, string outFilename) { WvlLogger.Log(LogType.TraceAll, "CopyWaveFile()"); FileInputStream fis = null; FileOutputStream fos = null; long totalAudioLen = 0; long totalDataLen = totalAudioLen + 36; long longSampleRate = RECORDER_SAMPLERATE; //int channels = 2; int channels = 1; long byteRate = RECORDER_BPP * RECORDER_SAMPLERATE * channels / 8; byte[] data = new byte[bufferSize]; try { fis = new FileInputStream(inFilename); fos = new FileOutputStream(outFilename); totalAudioLen = fis.Channel.Size(); totalDataLen = totalAudioLen + 36; WvlLogger.Log(LogType.TraceValues, "CopyWaveFile() - File size: " + totalDataLen.ToString()); WriteWaveFileHeader(fos, totalAudioLen, totalDataLen, longSampleRate, channels, byteRate); while (fis.Read(data) != -1) { fos.Write(data); } fis.Close(); fos.Close(); } catch (Java.IO.FileNotFoundException e) { //e.printStackTrace(); WvlLogger.Log(LogType.TraceExceptions, "CopyWaveFile() - FileNotFoundException: " + e.ToString()); } catch (Java.IO.IOException e) { //e.printStackTrace(); WvlLogger.Log(LogType.TraceExceptions, "CopyWaveFile() - IOException: " + e.ToString()); } }
void OnNext() { WvlLogger.Log(LogType.TraceAll, "OnNext()"); //short[] audioBuffer = new short[2048]; short[] audioBuffer = new short[1024]; WvlLogger.Log(LogType.TraceValues, "OnNext() - audioRecord.Read - audioBuffer.Length : " + audioBuffer.Length.ToString()); audioRecord.Read(audioBuffer, 0, audioBuffer.Length); int[] result = new int[audioBuffer.Length]; for (int i = 0; i < audioBuffer.Length; i++) { result[i] = (int)audioBuffer[i]; } samplesUpdated(this, new SamplesUpdatedEventArgs(result)); }
private string GetFilename() { WvlLogger.Log(LogType.TraceAll, "GetFilename()"); string filepath = Android.OS.Environment.ExternalStorageDirectory.Path; File file = new File(filepath, AUDIO_RECORDER_FOLDER); if (!file.Exists()) { file.Mkdirs(); } var result = (file.AbsolutePath + "/" + DateTime.Now.Millisecond.ToString() + AUDIO_RECORDER_FILE_EXT_WAV); wavFileName = result; WvlLogger.Log(LogType.TraceAll, "GetFilename() : " + result); return(result); }
void OnNext() { WvlLogger.Log(LogType.TraceAll, "OnNext()"); short[] audioBuffer = new short[2048]; audioRecord.Read(audioBuffer, 0, audioBuffer.Length); int[] result = new int[audioBuffer.Length]; for (int i = 0; i < audioBuffer.Length; i++) { result[i] = (int)audioBuffer[i]; } // stop button debug /* * samplesUpdated(this, new SamplesUpdatedEventArgs(result)); */ }
private void InitFirstChart() { WvlLogger.Log(LogType.TraceAll, "InitFirstChart()"); var xAxis = new NumericAxis(this) { AutoRange = AutoRange.Always, DrawMajorBands = false, DrawLabels = false, DrawMajorTicks = false, DrawMinorTicks = false, DrawMajorGridLines = false, DrawMinorGridLines = false, AxisTitle = "Time (seconds)" }; var yAxis = new NumericAxis(this) { AutoRange = AutoRange.Never, VisibleRange = new DoubleRange(short.MinValue, short.MaxValue), DrawMajorBands = false, DrawLabels = false, DrawMajorTicks = false, DrawMinorTicks = false, DrawMajorGridLines = false, DrawMinorGridLines = false, AxisTitle = "Freq (hZ)" }; samplesDataSeries = new XyDataSeries <int, int> { FifoCapacity = new Java.Lang.Integer(500000) }; var rs = new FastLineRenderableSeries { DataSeries = samplesDataSeries }; using (Surface.SuspendUpdates()) { Surface.XAxes.Add(xAxis); Surface.YAxes.Add(yAxis); Surface.RenderableSeries.Add(rs); } }
public async Task StartPlaying() { WvlLogger.Log(LogType.TraceAll, "StartPlaying()"); string filePath = GetTempFilename(); FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read); BinaryReader binaryReader = new BinaryReader(fileStream); long totalBytes = new System.IO.FileInfo(filePath).Length; buffer = binaryReader.ReadBytes((Int32)totalBytes); fileStream.Close(); fileStream.Dispose(); binaryReader.Close(); WvlLogger.Log(LogType.TraceValues, "StartPlaying() - " + " fileStream: " + fileStream.Name + " totalBytes: " + totalBytes.ToString()); await PlayAudioTrackAsync(); }
async Task Post3(string fileName) { WvlLogger.Log(LogType.TraceAll, "Post3()"); using (var client = new HttpClient()) { using (var content = new MultipartFormDataContent()) { WvlLogger.Log(LogType.TraceAll, "Post3() - KeyValuePair"); var values = new [] { new KeyValuePair <string, string>("rotating_machine", "machine_type"), new KeyValuePair <string, string>("My machine", "machine_name"), new KeyValuePair <string, string>("My campaign", "campaign"), new KeyValuePair <string, string>("Pierre-Christophe", "user_name"), }; foreach (var keyValuePair in values) { content.Add(new StringContent(keyValuePair.Value), keyValuePair.Key); } WvlLogger.Log(LogType.TraceAll, "Post3() - fileContent"); var fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes(fileName)); fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "audio.wav" }; content.Add(fileContent); try { WvlLogger.Log(LogType.TraceAll, "Post3() - PostAsync()"); var result = client.PostAsync(url, content).Result; WvlLogger.Log(LogType.TraceValues, "Post3() - result : " + result.ToString()); } catch (Exception ex) { WvlLogger.Log(LogType.TraceExceptions, "Post3() - Exception : " + ex.ToString()); } } } }
private void UpdateSamplesDataSeries(int[] dataSeries) { WvlLogger.Log(LogType.TraceAll, "UpdateSamplesDataSeries()"); var xArray = new int[dataSeries.Length]; for (int i = 0; i < dataSeries.Length; i++) { xArray[i] = lastElement++; } try { samplesDataSeries.Append(xArray, dataSeries); WvlLogger.Log(LogType.TraceValues, "UpdateSamplesDataSeries() - xarray : " + xArray.Length.ToString() + " - dataSeries : " + dataSeries.Sum().ToString()); } catch (Exception e) { WvlLogger.Log(LogType.TraceExceptions, "UpdateSamplesDataSeries() - exception : " + e.ToString()); } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.activity_debugaudio_towav); SetButtonHandlers(); EnableButtons(false); /* * bufferSize = AudioRecord.getMinBufferSize(8000, * AudioFormat.CHANNEL_CONFIGURATION_MONO, * AudioFormat.ENCODING_PCM_16BIT); */ bufferSize = AudioRecord.GetMinBufferSize(8000, Android.Media.ChannelIn.Mono, Android.Media.Encoding.Pcm16bit); WvlLogger.Log(LogType.TraceAll, "bufferSize : " + bufferSize.ToString()); }