Table Of Contents
Audio¶
Load an audio sound and play it with:
from kivy.core.audio import SoundLoader
sound = SoundLoader.load('mytest.wav')
if sound:
print("Sound found at %s" % sound.source)
print("Sound is %.3f seconds" % sound.length)
sound.play()
You should not use the Sound class directly. The class returned by
SoundLoader.load()
will be the best sound provider for that particular
file type, so it might return different Sound classes depending the file type.
Event dispatching and state changes¶
Audio is often processed in parallel to your code. This means you often need to
enter the Kivy eventloop
in order to allow
events and state changes to be dispatched correctly.
You seldom need to worry about this as Kivy apps typically always require this event loop for the GUI to remain responsive, but it is good to keep this in mind when debugging or running in a REPL (Read-eval-print loop).
Changed in version 1.10.0: The pygst and gi providers have been removed.
Changed in version 1.8.0: There are now 2 distinct Gstreamer implementations: one using Gi/Gst working for both Python 2+3 with Gstreamer 1.0, and one using PyGST working only for Python 2 + Gstreamer 0.10.
Note
The core audio library does not support recording audio. If you require this functionality, please refer to the audiostream extension.
- class kivy.core.audio.Sound[source]¶
Bases:
kivy.event.EventDispatcher
Represents a sound to play. This class is abstract, and cannot be used directly.
Use SoundLoader to load a sound.
- Events:
- on_play: None
Fired when the sound is played.
- on_stop: None
Fired when the sound is stopped.
- get_pos()[source]¶
Returns the current position of the audio file. Returns 0 if not playing.
New in version 1.4.1.
- property length¶
Get length of the sound (in seconds).
- loop¶
Set to True if the sound should automatically loop when it finishes.
New in version 1.8.0.
loop
is aBooleanProperty
and defaults to False.
- pitch¶
Pitch of a sound. 2 is an octave higher, .5 one below. This is only implemented for SDL2 audio provider yet.
New in version 1.10.0.
pitch
is aNumericProperty
and defaults to 1.
- seek(position)[source]¶
Go to the <position> (in seconds).
Note
Most sound providers cannot seek when the audio is stopped. Play then seek.
- source¶
Filename / source of your audio file.
New in version 1.3.0.
source
is aStringProperty
that defaults to None and is read-only. Use theSoundLoader.load()
for loading audio.
- state¶
State of the sound, one of ‘stop’ or ‘play’.
New in version 1.3.0.
state
is a read-onlyOptionProperty
.
- volume¶
Volume, in the range 0-1. 1 means full volume, 0 means mute.
New in version 1.3.0.
volume
is aNumericProperty
and defaults to 1.
- class kivy.core.audio.SoundLoader[source]¶
Bases:
builtins.object
Load a sound, using the best loader for the given file type.