Visual Basic Windows Phone 7 Series #2. How to create a microphone application for Windows Phone 7

Avatar

In our last post, I explained how to create a mini browser for Windows Phone 7. In this blog, I want to share a sample that will help you to create a microphone application for Windows Phone 7. This application will have the feature to capture audio from a microphone and then play back the captured audio. I will now demonstrate how easy it is to create a microphone application for Windows Phone 7, using Visual Basic for Windows Phone Developer Tools.

The microphone application can be created in 4 simple steps as follows:

  1. Create a sample application and add controls
  2. Add event handlers
  3. Build and debug the application
  4. Rebuild in the release mode before publishing

Prerequisites:

      To create the microphone application, let’s follow the 4 simple steps mentioned earlier:

      Step 1 – Create a sample application and add controls

      Create a sample application

      1. Create a new project and browse to the “Silverlight for Windows Phone” node.
      2. Select the “Windows Phone Application” template.
      3. Enter a name for the application. 
      4. Click OK. The MainPage.xaml page is displayed. 
      5. In Solution Explorer, right-click the application name and then select Add Reference. 
      6. Select Microsoft.Xna.Framework from the list, and then click Ok. 

       

      Add controls

      1. Click the MY APPLICATION text. In the Properties window, change the text property to “SILVERLIGHT MICROPHONE SAMPLE”.
      2. Click the page name text. In the Properties window, change the text property to “press record”.
      3. In Solution Explorer, right-click the application name and add a new folder.
      4. Rename the new folder as “Images”, and add the required icon images to the folder.
      5. From the toolbox, drag and drop the Image control to the design surface.
      6. Click the Image control. In the Properties window, change the text property to “StatusImage”.
      7. Change the source property of the Image control to link it to the icon image you added in the Images folder.
      8. Add the following XAML code to create the record, play, and stop buttons. This code also links the buttons to the respective icon images from the Images folder.

      Your application now looks like this:

       

      Step 2 – Add event handlers

      Adding event handlers is one of the important tasks. These event handlers are required to start capturing an audio, stop capturing the audio, and then play back the captured audio.

      To add the event handlers:

      1. Open the MainPage.xaml.vb page, and add the following code:

      2. To simulate the XNA Framework, add the following code to the constructor of your MainPage class:
      3. To create a new Microphone.BufferReady event handler, add the following code:

        After adding all the code mentioned in the previous steps, your constructor should look like the following:

      4. To implement the BufferReady event handler, add the following code:

        Note: While recording, this method copies the data from the microphone to a buffer. Later, it copies that buffer to a stream so that the audio can be played back again.

      5. Add the following code to create an event handler for the record button.

        Private Sub recordButton_Click(ByVal sender As Object, ByVal e As EventArgs)

            ‘ Get audio data in 1 second chunks

            microphone.BufferDuration = TimeSpan.FromMilliseconds(1000)

         

            ‘ Allocate memory to hold the audio data

            buffer = New Byte(microphone.GetSampleSizeInBytes(microphone.BufferDuration) – 1) {}

         

            ‘ Set the stream back to zero in case there is already something in it

            stream.SetLength(0)

         

            ‘ Start recording

            microphone.Start()

         

             SetButtonStates(False, False, True)

            UserHelp.Text = “record”

            StatusImage.Source = microphoneImage

        End Sub

        Note: This method will start capturing the audio. It also allocates memory to hold the audio for 1 second. 

      6. Add the following code to create an event handler for the stop button. This method will stop capturing the audio. 

         

      7. Add the following code to create an event handler for the play button.

        Private Sub playButton_Click(ByVal sender As Object, ByVal e As EventArgs)

                If stream.Length > 0 Then

                    ‘ Update the UI to reflect that

                    ‘ sound is playing

                    SetButtonStates(False, False, True)

                    UserHelp.Text = “play”

                    StatusImage.Source = speakerImage

         

                    ‘ Play the audio in a new thread so the UI can update.

                    Dim soundThread As New Thread(New ThreadStart(AddressOf playSound))

                    soundThread.Start()

                End If

        End Sub

        Note: This method will allocate a new SoundEffect object and play back the captured audio. 

      Voila! Now your microphone for Windows Phone 7 is ready! You just need to build and debug the application.

      Step 3 – Build and debug the application

      1. To build the application, select Build > Build Solution. The project should build without any errors.
      2. To debug the application, set the deployment target of the application to “Windows Phone 7 Emulator”. 
      3. Select Debug > Start Debugging. The emulator window is displayed. 
      4. To start recording the audio, click the Record button. 
      5. To stop recording the audio, click the Stop button. 
      6. To play back the captured audio, click the Play button. 
         

      Note: To stop debugging the application, select Debug > Stop Debugging.

      Finally, your microphone application for Windows Phone 7 is ready to be published into the marketplace. Now, you just need to rebuild your application for the release.

      Step 4 – Rebuild in the release mode before publishing

      1. On the standard toolbar, change the configuration manager to Release
      2. To rebuild the application, select Build > Rebuild. The XAP file of the application is generated.

      To submit your application to the market place, you can refer to upload your application walkthrough.

      Summary

      That’s it! We’ve now seen that creating a microphone application for Windows Phone 7 isn’t that tough. In fact, you’ve created it in just 4 simple steps!

      You can find the full source code for the Visual Basic Silverlight Microphone application here.

      Avatar

      Follow    

      No Comments.