Jump to content

[3D] Client-side Sound API. 1.0.0

   (6 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

   2 of 2 members found this review helpful 2 / 2 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
×
×
  • Create New...