How to add audio files using Python kivy

Python Kivy is an open-source Python library that allows developers to create multi-touch applications with a natural user interface (NUI). It supports various multimedia elements, including audio files, which can be integrated into Kivy applications to enhance the user experience. It provides a framework for building cross-platform applications that run on Windows, macOS, Linux, Android, and iOS. Kivy utilizes a rich set of UI controls, animations, and graphics, allowing developers to create visually appealing and interactive applications.

One essential aspect of creating engaging user experiences in applications is the integration of multimedia elements, such as images, videos, and audio. Audio files can enhance the user experience by providing background music, sound effects, or voice-overs. Python Kivy offers built-in support for handling audio files, making it straightforward to incorporate audio into your Kivy applications.

Setting Up the Environment

To get started, create a new Python virtual environment and activate it. This will help keep your project dependencies isolated 

$ python3 -m venv myenv
$ source myenv/bin/activate  # Linux/Mac
$ myenv\Scripts\activate  # Windows

Next, install Kivy using pip 

$ pip install kivy

Creating a Basic Kivy Application

Let's start by creating a basic Kivy application that will serve as the foundation for adding audio files. Open your code editor and create a new Python file, for example,

In, import the necessary Kivy modules and define a simple Kivy application class 

from import App
from kivy.uix.button import Button

class MyApp(App):
   def build(self):
      return Button(text='Click Me')

if __name__ == '__main__':

Save the file and run it using the following command 

$ python

You should see a Kivy window with a button labeled "Click Me."

Adding Audio Files

To add audio files to your Kivy application, follow these steps −

  • Import the necessary Kivy modules

from import SoundLoader
  • Load the audio file

sound = SoundLoader.load('path/to/audio/file.mp3')

Replace 'path/to/audio/file.mp3' with the actual path to your audio file. Kivy supports various audio formats, including MP3, WAV, OGG, and others.

  • Play the audio

if sound:

The play() method starts playing the audio file. The if sound check ensures that the audio file was loaded successfully before attempting to play it.

  • Stop the audio (optional)


If you want to stop the audio playback at any point, call the stop() method.

Putting It All Together

To incorporate audio into our basic Kivy application, we will modify the MyApp class in −

from import App
from kivy.uix.button import Button
from import SoundLoader

class MyApp(App):
   def build(self):
      sound = SoundLoader.load('path/to/audio/file.mp3')
      button = Button(text='Play Audio')

      def play_audio(instance):
         if sound:

      return button

if __name__ == '__main__':

Make sure to replace 'path/to/audio/file.mp3' with the actual path to your audio file.

Save the file and run the application. Clicking the button labeled "Play Audio" should play the audio file specified.


We explored how to add audio files to a Python Kivy application. We learned how to load audio files, play them, and even stop the audio playback if desired. Adding audio to your Kivy applications can significantly enhance the user experience and make them more engaging.

By leveraging the Kivy framework and its built-in audio capabilities, you can seamlessly integrate audio elements into your applications. Whether it's background music, sound effects, or voice-overs, audio can bring life and interactivity to your user interfaces.

Throughout the tutorial, we covered the essential steps, from setting up the development environment to incorporating audio functionality into a basic Kivy application. However, this is just the tip of the iceberg. Kivy offers a range of additional features and options for handling audio, such as controlling volume, seeking, and managing multiple audio files simultaneously. Exploring these features and experimenting with different audio files and scenarios will enable you to create more dynamic and immersive applications.

Updated on: 16-Aug-2023


Kickstart Your Career

Get certified by completing the course

Get Started