Jump to content

[3D] Client-side Sound API. 1.0.0

   (7 reviews)

1 Screenshot

About This File

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.


What's New in Version 1.0.0   See changelog

Released

Fixes:

- Fixed anonymous error showing when 2 players+ are inside the sound area
- Fixed volume setting to un-host players

- Changed the the structure of core to support hosts and add plans for future host changing.

- Added song host removal on playerQuit.

- Fixed some fatal mistakes which was a result of fast release of the resource.

 

Thanks to Mos, Jaeger046 for helping me with testing the resource.

  • Like 5

User Feedback

Create an account or sign in to leave a review

You need to be a member in order to leave a review

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

xshady

   3 of 3 members found this review helpful 3 / 3 members

please correct the order of args! (I had to lose a lot of time on what is wrong)

INCORRECT: mp.game.audio.playSound3D(url, pos, volume, range, dimension) 
CORRECT:     mp.game.audio.playSound3D(url, pos, range, volume, dimension)

Link to review
JamesBeast

   2 of 3 members found this review helpful 2 / 3 members

tnx so much

got my music 🎶3D'd 📦

🎵🎸🎹🥁

  • Like 5
Link to review
Solib

   0 of 2 members found this review helpful 0 / 2 members

Local mp3 file cant playing

Link to review
MirageGaming

  

Does this only play MP3 or does it have the ability to play pls or other streaming formats?

Link to review
×
×
  • Create New...