Skip to main content

Audio System

Messenger provides a stateful audio player, which is based on a Javascript audio player and its elm wrapper.

Like text and texture rendering, audio also needs resource files in Resources.elm. Before playing any audio, please define them in allAudio:

{-| All audio assets.

The format is similar to `allTexture`.

Example:

[ ( "test", AudioRes "assets/test.ogg" )
]

-}
allAudio : ResourceDefs
allAudio =

Then, you are ready to play audio in Messenger. All the audio operations are implemented as SOM calls.

Audio Abstraction

Messenger provides an infinite number of audio channels that could play an audio file.

One audio channel could play multiple audio files at a time, and different audio channels could also play different audio concurrently.

When an audio file is playing, it becomes a playing stream. There may be multiple playing stream for a single file.

The playing stream could be found by the channel ID and the audio name.

tip

See demo.