Create an Android Sound Recorder using Kotlin

In this blog post, we’ll develop a basic Sound Recorder application that is capable of recording audio and saving it into the local storage of an Android device using the MediaRecorder that is provided by the Android SDK.You will also learn how to request user-permissions in real-time and how to work with the local storage of an Android device.Creating the UIFirst, we need to build the user interface of the Audio Recorder..It consists of a simple layout with 3 buttons which will be used to start, pause, resume and stop the recording.Requesting the required permissionsAfter creating the UI we can almost start using the MediaRecorder to build our app..But first, we need to request the required permissions to record the audio and access the local storage..We can do that with some simple lines of code in our AndroidManifest.xml file.We also need to check if the user has really enabled the permissions before we can use our MediaRecorder..We can do so in our MainActivity.kt file.Note: This lines of code will later be moved in the OnClickListener call of the start_recording button so we can make sure that the MediaRecorder will not be started without having the right permissions.Recording and saving audioAdding OnClickListenersFirst, we need to add OnClickListeners to the buttons to make sure they react to user events..As I mentioned before the check for the right permissions will be added in the OnClickListener call of the start_recording button.Configuring the MediaRecorderNext, we need to define a path for our output and start configuring our MediaRecorder.Here, we get the path to the root of our external storage and add our recording name and filetype to it..After that, we create our MediaRecorder object and define the audio source, audio encoder, output format and output file.Recording and saving the audioThe code used to start the MediaRecorder is defined in the OnClickListener of the start_recording button.As you can see we need to call the prepare function before we can start the recording..We also embed it into a try-catch block to make sure the app won’t crash when the prepares function fails.The OnClickListeners of the stop button is very similar to the one we defined above.Here we check if the MediaRecorder is currently running before we actually stop the recording because our app would crash if the stop method is called while the MediaRecorder isn’t recording..After that, we change the state variable to false to prevent the user from pressing the stop button again.After that, we just need to define the OnClickListener for the pause/resume button.In these two methods we check if the MediaRecorder is running..If so we pause the recording and change the text of the button to resume..If clicked again the recording will resume from the point it left of.Finally, we can start recording audio and listen to it by opening the recording.mp3 file that will be saved in our local storage.Complete Source Code for the MainActivity.ktHere you can get the complete source code for our basic Sound Recorder app:Looking up the audio fileAfter recording you need to go into the local storage of your Android device to listen to your recordings..I’m just including it for the people who aren’t confident navigating in the local Android storage.Open the files app on your Android deviceGo to the local registerSearch for recording.mp3Closing NotesNow you should know how the MediaRecorder works, how you can request permission in real-time and why it is important to do so.. More details

Leave a Reply