1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Copyright 2014 Romain Chanoir <romain.chanoir@viacesi.fr>
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
17 # Services to load and play `Sound` and `Music` from the assets folder
19 # Get a handle to a sound using `new Sound` or `new Music` at any time.
20 # Call `load` at or after `App::on_create` or leave it to be loaded
21 # on demand by the first call to `play`.
28 import linux
::audio
is conditional
(linux
)
29 import android
::audio
is conditional
(android
)
30 import ios
::audio
is conditional
(ios
)
32 # Abstraction of a playable Audio
33 abstract class PlayableAudio
35 init do sounds
.add
self
37 # Path to the audio file in the assets folder
40 # Last error on this sound, if any
41 fun error
: nullable Error do return null
43 # Load this playable audio
61 # Long sound that can bee looped
68 # All instantiated sounds
69 var sounds
= new Array[PlayableAudio]