@kefah/nativescript-sound
by kefah | v1.0.1
Add a plugin description
npm i --save @kefah/nativescript-sound

@kefah/nativescript-sound

This is a plugin to play games short sound

Limitations Android app can play only sound under 1MB (5.6 seconds) Do not play a large audio with this plugin, it is not made for

npm install @kefah/nativescript-sound

Usage

Do not forged Webpack!

  const config = webpack.resolveConfig();
const customCopyInstance = new CopyWebpackPlugin({
patterns: [
...
{ from: 'sounds/*.mp3'}, // put here the path to the s-audio file
],
});

config.plugins.push(customCopyInstance);
return config;

Use it :-)

    import { NativescriptSound, SoundPathInterface } from '@kefah/nativescript-sound';

/**
* Do not forged to configure webpack for your audio file
* */

const appPath: string = knownFolders.currentApp().path;
const soundsPath = path.join(appPath, "sounds");
this.sounds = {
"success": {
path: path.join(soundsPath, "card_palyed_1.mp3")
},
"msg": {
path: path.join(soundsPath, "card_played_2.mp3")
},
"success_1": {
path: path.join(soundsPath, "card_played.mp3")
},
"shuffle": {
path: path.join(soundsPath, "card_shuffle.mp3")
},
"wrong": {
path: path.join(soundsPath, "card_swipe.mp3")
}
};

this.player = new NativescriptSound(10)

// Prepare all the audio to be played later
this.player.prepare({
paths: this.sounds,
onLoadCompleted: (player, sampleId, status) => {
console.log(`${sampleId} with status ${status}`)
}
});

// ...
// Later on the game, play the sound
this.player.play({
name: "success"
});

API

Name IOS ANDROID Type Description
prepare X X paths: SoundsOptions Prepare a list of audios to be played later on the game
play X X playOptions: PlayOptions Play a specific audio
stop X X soundName: string Stop the audio with the sound name
pause X X soundName: string Pause the audio
resume X soundName: string resume the audio
setVolume X X soundName: string set the volume of the audio
setRate X X soundName: string set the speed of the audio
unload X soundName: string unload audio, you need new instance after calling this to reload the audio
releaseAll X unload all audios, you need new instance after calling this to reload the audio

License

Apache License Version 2.0