Problem during playback, recorded sound in WP7

Hi Developers,

If we save the recorded voice as an mp3 file. we get an error opening the file because Windows Media Player cannot play the file. The player may not support the file type or may not support the codec that was used to compress the file.

Please give a solution to overcome this problem ....

Here is my source code

namespace Windows_Phone_Audio_Recorder
{
    public partial class MainPage : PhoneApplicationPage
    {
        MemoryStream m_msAudio = new MemoryStream();
        Microphone m_micDevice = Microphone.Default;
        byte[] m_baBuffer;
        SoundEffect m_sePlayBack;
        ViewModel vm = new ViewModel();
        long m_lDuration = 0;
        bool m_bStart = false;
        bool m_bPlay = false;
        private DispatcherTimer m_dispatcherTimer;

        public MainPage()
        {
            InitializeComponent();

            SupportedOrientations = SupportedPageOrientation.Portrait | SupportedPageOrientation.Landscape;            
            DataContext = vm;
            m_dispatcherTimer = new DispatcherTimer();

            m_dispatcherTimer.Interval = TimeSpan.FromTicks(10000);

            m_dispatcherTimer.Tick += frameworkDispatcherTimer_Tick;
            m_dispatcherTimer.Start();
            FrameworkDispatcher.Update();        
            //icBar.ItemsSource = vm.AudioData;
        }

        void frameworkDispatcherTimer_Tick(object sender, EventArgs e)
        {
            FrameworkDispatcher.Update();
        }        

        private void btnStart_Click(object sender, RoutedEventArgs e)
        {
            m_bStart = true;
            tbData.Text = "00:00:00";
            m_lDuration = 0;
            m_micDevice.BufferDuration = TimeSpan.FromMilliseconds(1000);
            m_baBuffer = new byte[m_micDevice.GetSampleSizeInBytes(m_micDevice.BufferDuration)];
            //m_micDevice.BufferReady += new EventHandler(m_Microphone_BufferReady);
            m_micDevice.BufferReady += new EventHandler<EventArgs>(m_Microphone_BufferReady);
            m_micDevice.Start();
        }

        void m_Microphone_BufferReady(object sender, EventArgs e)
        {
            m_micDevice.GetData(m_baBuffer);
              Dispatcher.BeginInvoke(()=>
              {
                    vm.LoadAudioData(m_baBuffer);
                    m_lDuration++;
                    TimeSpan tsTemp = new TimeSpan(m_lDuration * 10000000); 
                   tbData.Text = tsTemp.Hours.ToString().PadLeft(2, '0') + ":" + tsTemp.Minutes.ToString().PadLeft(2, '0') + ":" + tsTemp.Seconds.ToString().PadLeft(2, '0');
               }
                );
            //this.Dispatcher.BeginInvoke(new Action(() => vm.LoadAudioData(m_baBuffer))); 
            //this.Dispatcher.BeginInvoke(new Action(() => tbData.Text = m_baBuffer[0].ToString() + m_baBuffer[1].ToString() + m_baBuffer[2].ToString() + m_baBuffer[3].ToString()));
            m_msAudio.Write(m_baBuffer,0, m_baBuffer.Length);
        }

        private void btnStop_Click(object sender, RoutedEventArgs e)
        {
            if (m_bStart)
            {
                m_bStart = false;
                m_micDevice.Stop();
                ProgressPopup.IsOpen = true;
            }

            if (m_bPlay)
            {
                m_bPlay = false;
                m_sePlayBack.Dispose();
            }
        }

        private void btnPlay_Click(object sender, RoutedEventArgs e)
        {
            m_bPlay = true;
            m_sePlayBack = new SoundEffect(m_msAudio.ToArray(), m_micDevice.SampleRate, AudioChannels.Mono);
            m_sePlayBack.Play();
        }

        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            if (txtAudio.Text != "")
            {
                IsolatedStorageFile isfData = IsolatedStorageFile.GetUserStoreForApplication();
                string strSource = txtAudio.Text + ".wav";
                int nIndex = 0;
                while (isfData.FileExists(txtAudio.Text))
                {
                    strSource = txtAudio.Text + nIndex.ToString().PadLeft(2, '0') + ".wav";
                }

                IsolatedStorageFileStream isfStream = new IsolatedStorageFileStream(strSource, FileMode.Create, IsolatedStorageFile.GetUserStoreForApplication());
                isfStream.Write(m_msAudio.ToArray(), 0, m_msAudio.ToArray().Length);
                isfStream.Close();
            }
            this.Dispatcher.BeginInvoke(new Action(() => ProgressPopup.IsOpen = false));           
        }
    }
}

Dotnet weblineindia

my source code for DOWNLOADING AUDIO TO PHP SERVER:

public void UploadAudio()
    {
        try
        {
            if (m_msAudio != null)
            {
                var fileUploadUrl = "uploadurl";

                var client = new HttpClient();
                m_msAudio.Position = 0;
                MultipartFormDataContent content = new MultipartFormDataContent();

                content.Add(new StreamContent(m_msAudio), "uploaded_file", strFileName);

                // upload the file sending the form info and ensure a result.it will throw an exception if the service doesn't return a valid successful status code

                client.PostAsync(fileUploadUrl, content)

               .ContinueWith((postTask) =>
               {
                   try
                   {
                       postTask.Result.EnsureSuccessStatusCode();
                       var respo = postTask.Result.Content.ReadAsStringAsync();
                       string[] splitChar = respo.Result.Split('"');
                       FilePath = splitChar[3].ToString();
                       Dispatcher.BeginInvoke(() => NavigationService.Navigate(new Uri("/VoiceSlider.xaml?FName=" + strFileName, UriKind.Relative)));                          
                   }
                   catch (Exception ex)
                   {
                      // Logger.Log.WriteToLogger(ex.Message);
                       MessageBox.Show("voice not uploaded" + ex.Message);
                   }

               });
            }
        }
        catch (Exception ex)
        {
            //Logger.Log.WriteToLogger(ex.Message + "Error occured while uploading image to server");
        }
    }
+4
source share
1 answer

, Windows Phone .mp3. , .mp3, , Windows Phone.

this. WAV .

, .aac,.amr, AudioVideoCaptureDevice class.

+1

Source: https://habr.com/ru/post/1536923/


All Articles