Version 1.0.0
1167 downloads
Description:
This resources provides the ability to create/control sound in 3D via custom API. Also demonstrates the ability to use custom urls (Radio streams). 3D sound should be synced automatically without the need of extra work.
Notes:
- This resource represents basic functioning of CEF sounds using very basic 3D implementation
- This resource becomes obsolete when RAGEMP releases 1.1 dp2 which introduces 3D sound API.
- This resource doesn't support local mp3 due to some reason with soundManager2. I'll look into it later...
- This resource doesn't support Frontend sound atm, it's really easy to implement it yourself.
API:
// Client-side
// FUNCTIONS
mp.game.audio.playSound3D(url, pos, volume, range, dimension)
/*
* url: string (Required) [Links and local package:// protocol are supported]
* pos: vector3 (Required)
* volume: int (Optional, Default: 1) [Range: 0 to 1]
* range: int (Optional, Default: 60) [Max Range: 60]
* dimension: (Optional, Default: 0)
* Returns Object.
* Object Properties:
- id (sound's ID)
- url (sound's url)
- pos (sound's position)
- volume (sound's volume)
- range (sound's max range)
- dimension (sound's dimension)
- listeners (players array that are listening to the sound)
- paused (If sound is paused)
*/
mp.game.audio.setSoundVolume(id, volume);
/*
* id (Sound's ID)
* volume (sound's volume) Range (0.1 - 1)
*/
mp.game.audio.setSoundPosition(id, pos);
/*
* Useful for portable sound
* id (Sound's ID)
* pos (sound's new position)
*/
mp.game.audio.setSoundRange(id, range);
/*
* id (Sound's ID)
* range (Max Range 60) (Increase it by editing the maxRange...)
*/
// EVENTS:
/*
* EventName: audioFinish
* params: soundID (Sound's ID that is finished Playing)
*/
/*
* EventName: audioError
* params: soundID (Sound's ID that had error), errorObject {code: 'error code', error: 'error description'}
*/
// Example
let sound = mp.game.audio.playSound3D('http://rfcmedia.streamguys1.com/MusicPulse.mp3', pos, 60, 1, 0);
sound.destroy(); // Destroys the sound
sound.pause(); // Pauses the sound
sound.resume(); // Resumes the sound
If you have any issues or suggestions, you know the usual routine.
Credits:
- Thanks to George for his 3D voice method.
- Thanks to soundManager 2 for bringing music to life in CEF
I wish you'll enjoy some epic music.