Pavle Goloskokovic
8b676cf743
Renamed loop event to looped for emitting event when sound has looped
2018-01-14 17:38:59 +01:00
Pavle Goloskokovic
846aefd7c1
Emitting loop event when sound loop setting value changes
2018-01-14 17:38:33 +01:00
Pavle Goloskokovic
8f692b8fb9
Renamed loop event to looped for emitting event when sound has looped
2018-01-14 17:37:52 +01:00
Pavle Goloskokovic
1fe58bc1ef
Refactored update method looping and ending logic a bit
2018-01-14 17:32:19 +01:00
Pavle Goloskokovic
2a70eb9c09
Removed completed TODO
2018-01-14 17:23:24 +01:00
Pavle Goloskokovic
ab02e843f3
Checking for loop between two update calls only if loop setting is set to true
2018-01-14 17:23:09 +01:00
Pavle Goloskokovic
4b9c94ebbe
Added a TODO to change loop event to looped and emit loop event when loop value changes
2018-01-14 17:22:32 +01:00
Pavle Goloskokovic
919d2d658a
Using EventEmitter emit method to dispatch seek update event
2018-01-14 17:21:24 +01:00
Pavle Goloskokovic
dd2bd9695d
Using EventEmitter emit method to dispatch volume update event
2018-01-14 17:20:31 +01:00
Pavle Goloskokovic
913c93eca1
Using EventEmitter emit method to dispatch mute update event
2018-01-14 17:20:20 +01:00
Pavle Goloskokovic
1912dd98df
Using EventEmitter emit method to dispatch loop event
2018-01-14 17:19:57 +01:00
Pavle Goloskokovic
8ba0c3d39e
Using EventEmitter emit method to dispatch ended event
2018-01-14 17:19:37 +01:00
Pavle Goloskokovic
14e7cb4b75
Using EventEmitter emit method to dispatch stop event
2018-01-14 17:18:53 +01:00
Pavle Goloskokovic
ac04061478
Using EventEmitter emit method to dispatch resume event
2018-01-14 17:18:39 +01:00
Pavle Goloskokovic
be03100765
Using EventEmitter emit method to dispatch pause event
2018-01-14 17:18:26 +01:00
Pavle Goloskokovic
d5ffad06aa
Using EventEmitter emit method to dispatch play event
2018-01-14 17:18:02 +01:00
Pavle Goloskokovic
cbb055f15c
Using EventEmitter emit method to dispatch volume update event
2018-01-14 16:54:11 +01:00
Pavle Goloskokovic
209b0caed3
Using EventEmitter emit method to dispatch mute update event
2018-01-14 16:53:48 +01:00
Pavle Goloskokovic
45eed34095
Passing reference to sound object when emitting volume event
2018-01-14 16:48:55 +01:00
Pavle Goloskokovic
452f9a13ab
Passing reference to sound object when emitting mute event
2018-01-14 16:48:25 +01:00
Pavle Goloskokovic
8cfe7bce4e
Added a todo to document events
2018-01-14 16:38:01 +01:00
Pavle Goloskokovic
39c35f15f9
Passing reference to sound manager when emitting detune event
2018-01-14 16:37:37 +01:00
Pavle Goloskokovic
f2049195c1
Pasing reference to sound manager when emitting rate event
2018-01-14 16:37:12 +01:00
Pavle Goloskokovic
c715a8a031
Pasing reference to sound manager when emitting stopall event
2018-01-14 16:36:56 +01:00
Pavle Goloskokovic
6cb35024de
Pasing reference to sound manager when emitting resumeall event
2018-01-14 16:36:44 +01:00
Pavle Goloskokovic
8c9ba8ce2c
Pasing reference to sound manager when emitting pauseall event
2018-01-14 16:36:29 +01:00
Pavle Goloskokovic
a76a721969
Using EventEmitter emit method to dispatch detune update event
2018-01-14 16:13:09 +01:00
Pavle Goloskokovic
7b2ed7f5a9
Using EventEmitter emit method to dispatch rate update event
2018-01-14 16:12:48 +01:00
Pavle Goloskokovic
4be42c3edc
Merge remote-tracking branch 'origin/master'
...
# Conflicts:
# src/sound/BaseSound.js
# src/sound/webaudio/WebAudioSound.js
2018-01-14 15:50:55 +01:00
Pavle Goloskokovic
8b67797252
Simplified delay calculation logic on focus loose
2018-01-14 15:45:32 +01:00
Pavle Goloskokovic
b0ec0edbbc
Calling sound's onFocus method instead of resume when sounds resume on game focus gain
2018-01-14 15:38:11 +01:00
Pavle Goloskokovic
ff885e2ead
Added onFocus method to be used when sound resumes when game gains focus
2018-01-14 15:37:38 +01:00
Pavle Goloskokovic
381799b040
Calling sound's onBlur method instead of pause when sounds stop on game focus loss
2018-01-14 15:36:39 +01:00
Pavle Goloskokovic
5c5df3f582
Marking sound as paused on blur to avoid update logic being run on it
2018-01-14 15:35:21 +01:00
Pavle Goloskokovic
bf77380814
Added onBlur method to be used when sound pauses on loose of focus
...
Saving sound state and stopping it
2018-01-14 15:34:23 +01:00
Pavle Goloskokovic
a6ec0af472
Using loopEndOffset when checking if sound looped
2018-01-14 15:32:30 +01:00
Pavle Goloskokovic
042f778167
Defining loopEndOffset property for HTML5AudioSoundManager class
2018-01-14 15:31:24 +01:00
Pavle Goloskokovic
60693d6da8
Using audioPlayDelay when checking for delay end for delayed playback
2018-01-14 15:30:27 +01:00
Pavle Goloskokovic
7384d9abcb
Defining audioPlayDelay property for HTML5AudioSoundManager class
2018-01-14 15:29:27 +01:00
Pavle Goloskokovic
2d20759df9
Fixed ms to s conversion for delay value when setting start time for delayed playback
2018-01-14 15:28:16 +01:00
Pavle Goloskokovic
65538e3408
Properly setting currentTime variable value when detecting missed looping in update method
2018-01-14 15:24:55 +01:00
Pavle Goloskokovic
5b0cf55bfc
Properly setting currentTime variable value when detecting looping in update method
2018-01-14 15:24:06 +01:00
Pavle Goloskokovic
f832c35de4
Properly setting previousTime value when setting seek value
2018-01-14 15:22:49 +01:00
Pavle Goloskokovic
de08ac36d5
Properly setting previousTime value when handling delayed playback in update method
2018-01-14 15:22:18 +01:00
Pavle Goloskokovic
ab6c924ccf
Properly setting previousTime value when picking and playing audio tag
2018-01-14 15:21:06 +01:00
Pavle Goloskokovic
0efa048015
Taking into account marker start time when calculating seek
2018-01-12 18:23:07 +01:00
Richard Davey
f9a1e27334
Removed un-used event files and references.
2018-01-12 17:20:16 +00:00
Pavle Goloskokovic
f941cabe07
Completed a TODO to clean up html5 audio stuff when calling destroy
2018-01-12 18:16:27 +01:00
Pavle Goloskokovic
44acc440f4
When hijacking audio form other sounds, sorting them by progress rather than just seek, so that we favorize longer sounds to continue their playback
2018-01-12 18:15:52 +01:00
Richard Davey
c625b8735b
Updated to using Event Emitter for all key managers and game objects. Events are now dispatched directly using arguments instead of Event objects, all managers updated to emit directly.
2018-01-12 17:09:21 +00:00
Pavle Goloskokovic
9bb138f40d
Dispatching event when setting HTML5AudioSoundManager volume property
2018-01-12 17:26:16 +01:00
Pavle Goloskokovic
30027af69e
Dispatching event when setting HTML5AudioSoundManager mute property
2018-01-12 17:25:59 +01:00
Pavle Goloskokovic
8f3f88c24d
Checking for set audio property instead of isPlaying flag
2018-01-12 17:19:03 +01:00
Pavle Goloskokovic
919665dd96
Fixed scope issue
2018-01-12 17:11:12 +01:00
Pavle Goloskokovic
4038291373
Changed the order of defining startTime and previousTime properties
2018-01-12 16:12:15 +01:00
Pavle Goloskokovic
b2eef5b96e
Added a todo
2018-01-12 16:03:15 +01:00
Pavle Goloskokovic
2a76c6eff5
Updating previousTime property when setting seek value
2018-01-12 16:01:19 +01:00
Pavle Goloskokovic
1cdebc80c3
Updating previousTime when picking and playing audio for sound
2018-01-12 16:00:37 +01:00
Pavle Goloskokovic
1180d82c27
Updating previousTime when starting sound with delayed playback
2018-01-12 15:59:40 +01:00
Pavle Goloskokovic
398b337da9
Resetting previousTime property when stopping sound or hijacking audio from another sound
2018-01-12 15:58:43 +01:00
Pavle Goloskokovic
de9e5a0d1f
Updating currentTime to new audio currentTime value while handling looping before assigning that value to previousTime property
2018-01-12 15:57:55 +01:00
Pavle Goloskokovic
a51a0bd543
Setting previousTime property to currentTime value at the end of update method
...
Using condition when current time is less then previous time to indicate sound looping and dispatch an event
2018-01-12 15:39:58 +01:00
Pavle Goloskokovic
1ec66f644f
Added previousTime property to keep track of audio tag's playback position recorded on previous update method call
2018-01-12 15:32:30 +01:00
Pavle Goloskokovic
9ec4d9a829
Fixing sound position if sound loops and starts from the beginning between two update calls
2018-01-12 15:30:11 +01:00
Pavle Goloskokovic
735cf10a3f
Dispatching SOUND_ENDED event when sound ends, obviously :)
2018-01-12 15:28:06 +01:00
Pavle Goloskokovic
72955bfe30
Handling sound ending in update method
2018-01-12 15:27:25 +01:00
Pavle Goloskokovic
0d0df1900b
Added logic for handling looping in update method
2018-01-12 15:23:39 +01:00
Pavle Goloskokovic
81d794b4c6
Setting audio to correct state when starting it since it might be playing already when hijacked form another sound
2018-01-12 15:18:31 +01:00
Pavle Goloskokovic
e68ff2b18a
Saving current position of the sound and stopping and releasing audio tag when calling pause method
2018-01-11 18:55:42 +01:00
Pavle Goloskokovic
f6de613fd0
Added stopAndReleaseAudioTag method to stop sound playback and mark audio tag as unused and release it for other sounds to use
2018-01-11 18:53:54 +01:00
Pavle Goloskokovic
8578319171
requiring SoundEvent class
2018-01-11 18:51:02 +01:00
Pavle Goloskokovic
40b2bf79b7
Calling pickAndPlayAudioTag from resume method
2018-01-11 18:50:25 +01:00
Pavle Goloskokovic
9e7ccb1503
Added helpful flags comment
2018-01-11 18:49:44 +01:00
Pavle Goloskokovic
a6b4066468
Moved logic for setting up and playing audio tag so it can be reused
2018-01-11 18:45:34 +01:00
Pavle Goloskokovic
f9093a2d7e
Disabling setting seek property on a delayed sound
2018-01-11 18:41:43 +01:00
Pavle Goloskokovic
81e8542af7
Resetting startTime property of a hijacked sound
2018-01-11 18:40:36 +01:00
Pavle Goloskokovic
fb29afedae
Preventing resume calls on delayed sounds
2018-01-11 18:39:45 +01:00
Pavle Goloskokovic
c1b24c4adb
Preventing pause calls on delayed sounds
2018-01-11 18:39:19 +01:00
Pavle Goloskokovic
fb6b989035
Handling delayed playback in update method
2018-01-11 18:31:36 +01:00
Pavle Goloskokovic
3388fd018f
Setting startTime based on delay config when calling play method
2018-01-11 18:30:16 +01:00
Pavle Goloskokovic
d6256c47c5
Defined startTime property
2018-01-11 18:23:28 +01:00
Pavle Goloskokovic
82819ec782
Setting sound position, applying config and starting playback if delay is set to 0 when calling play method
2018-01-11 18:20:18 +01:00
Pavle Goloskokovic
11923621ad
Finding available audio tag when calling play method and resetting and returning false if it was not successful
2018-01-11 18:17:50 +01:00
Pavle Goloskokovic
af8666f611
Added reset method that calls super stop method in order to reset sounds state
...
Calling reset method and setting audio to null after hijacking audio tag from another sound
2018-01-11 18:15:42 +01:00
Pavle Goloskokovic
106e32499f
Sorting sounds to hijack audio from by loop and seek properties values
2018-01-11 18:12:52 +01:00
Pavle Goloskokovic
f377b4fa85
Finding another sound to hijack audio tag from if there are no free audio tags and override setting is set to true
2018-01-11 18:11:10 +01:00
Pavle Goloskokovic
fc19a05f0b
Returning false if override setting of sound manager is set to false
2018-01-11 18:05:12 +01:00
Pavle Goloskokovic
935ef78102
Added method for finding unused audio tag for playing sound
2018-01-11 18:04:17 +01:00
Pavle Goloskokovic
6730b3b314
Defined seek property for HTML5AudioSound class
2018-01-11 18:00:42 +01:00
Pavle Goloskokovic
d6b11e2fdb
Defined seek property's setter for HTML5AudioSound class
2018-01-11 17:59:36 +01:00
Pavle Goloskokovic
afb8075379
Defined seek property's setter for HTML5AudioSound class
2018-01-11 17:58:26 +01:00
Pavle Goloskokovic
110c6891dd
Defined volume property for HTML5AudioSound class
2018-01-11 17:57:04 +01:00
Pavle Goloskokovic
8f9eafd315
Defined mute property for HTML5AudioSound class
2018-01-11 17:55:05 +01:00
Pavle Goloskokovic
495a79d4bf
Implemented setRate method
2018-01-11 17:51:58 +01:00
Pavle Goloskokovic
91f9629ed2
Implemented setVolume method
2018-01-11 17:50:20 +01:00
Pavle Goloskokovic
162a063f03
Implemented setMute method
2018-01-11 17:49:40 +01:00
Pavle Goloskokovic
ede81f2a03
Added destroy method
2018-01-11 17:48:23 +01:00
Pavle Goloskokovic
0223019290
Added blank update method
2018-01-11 17:47:01 +01:00
Pavle Goloskokovic
d51156fe94
Added stop method implementation that calls super method and dispatches stop event
2018-01-11 17:45:02 +01:00
Pavle Goloskokovic
196258b8ac
Added resume method implementation that calls super method and dispatches resume event
2018-01-11 17:43:56 +01:00
Pavle Goloskokovic
5e8d0dcaee
Added pause method implementation that calls super method and dispatches pause event
2018-01-11 17:42:18 +01:00
Pavle Goloskokovic
d3c034e5cc
Added play method implementation that calls super method and dispatches play event
2018-01-11 17:40:59 +01:00
Pavle Goloskokovic
b452859b78
Assigning duration and totalDuration values to audio tag duration
2018-01-11 17:38:47 +01:00
Pavle Goloskokovic
1d925105bd
Audio property docs update
2018-01-11 17:37:28 +01:00
Pavle Goloskokovic
ad858d1475
Throwing an error if no sound with given key was loaded
2018-01-11 17:36:51 +01:00
Pavle Goloskokovic
cf83880fb0
Defined tags property that holds reference to audio tags array
2018-01-11 17:35:25 +01:00
Pavle Goloskokovic
b22116e1f8
Updated override property docs
2018-01-11 17:32:49 +01:00
Pavle Goloskokovic
2372fdd812
Completed a TODO to return HTML5AudioSoundManager instance when necessary
2018-01-11 17:29:57 +01:00
Pavle Goloskokovic
7c715f1ba0
Removed detune property since it is already implemented in BaseSound class
2018-01-11 17:28:52 +01:00
Pavle Goloskokovic
be713af155
Removed rate property since it is already implemented in BaseSound class
2018-01-11 17:28:25 +01:00
Pavle Goloskokovic
98700ffff2
Updating play method to return boolean indicating if play call was done successfully
2018-01-11 17:27:19 +01:00
Pavle Goloskokovic
15562a70e3
Updated override property docs
2018-01-11 17:25:55 +01:00
Pavle Goloskokovic
2903417798
Defining detune property on a BaseSound class since it's the shared behaviour between subclasses
2018-01-11 17:24:53 +01:00
Pavle Goloskokovic
15f2717e9b
Defining rate property on a BaseSound class since it's the shared behaviour between subclasses
2018-01-11 17:24:26 +01:00
Pavle Goloskokovic
c0c6e39ccd
Updating play method to return boolean indicating if play call was done successfully
2018-01-11 17:22:57 +01:00
Pavle Goloskokovic
e75871adec
Added override property to HTML5AudioSoundManager
2018-01-11 16:50:50 +01:00
Pavle Goloskokovic
9fc3aaa0da
Moved HTML5AudioSoundManager.js
2018-01-10 16:50:21 +01:00
Pavle Goloskokovic
081908fd7b
Moved HTML5AudioSound.js
2018-01-10 16:50:11 +01:00
Pavle Goloskokovic
d0d3a6473d
Merge remote-tracking branch 'origin/master'
2018-01-10 16:20:13 +01:00
Richard Davey
d8f1ba03e9
Moved repository location
2018-01-09 21:43:56 +00:00
Richard Davey
0d90f75b5f
Splitting the dev branch up into versions.
2016-11-22 01:36:56 +00:00
photonstorm
7b9c4114b2
Preparing for 2.6.2 release.
2016-08-22 12:31:02 +01:00
Richard Davey
33748ece87
Merge pull request #2697 from hilts-vaughan/fix-sound-loop
...
Sound: Fixes an issue where loopFull would not return the soundinstan…
2016-08-18 15:29:18 +01:00
Vaughan Hilts
067f3cca83
Sound: Fixes an issue where loopFull would not return the soundinstance that it looped from
2016-08-17 22:15:45 -04:00
Richard Davey
e955cf4222
Sound.play would throw the error "Uncaught DOMException: Failed to execute 'disconnect' on 'AudioNode': the given destination is not connected." in Chrome, if you tried to play an audio marker that didn't exist, while a valid marker was already playing.
2016-08-03 04:04:22 +01:00
Richard Davey
6f9bcae23e
Docs fixes #2629
2016-07-17 11:23:41 +01:00
photonstorm
521a6c9dbb
Sound.stop will check to see if gainNode
exists before trying to disconnect from it.
2016-07-08 12:27:12 +01:00
photonstorm
2310e5dc6f
Sound.volume was accidentally repeated twice in the source (thanks @LoneStranger #2569 )
2016-06-20 12:18:39 +01:00
Richard Davey
1b67850c82
Merge pull request #2529 from TheJasonReynolds/local_dev
...
Set isPlaying to true if no marker (.play is not called again)
2016-06-05 15:51:43 +01:00
John Rees
e75827d6ab
Signal description typo fix
2016-06-04 19:41:54 +01:00
Jason Reynolds
db0a41bedf
Set isPlaying to true if no marker (.play is not called again)
2016-06-03 17:08:07 -05:00
photonstorm
63a1336bd5
Sound.addMarker now has a default value for the duration
argument (1 second) to avoid the DOM Exception 11 error if you accidentally miss it out (thanks @mari8i #2508 )
2016-06-02 15:29:51 +01:00
photonstorm
d161a7f6bc
Sounds played using the Audio tag, set to loop, would get caught in an endless pause-play loop cycle (thanks @rroylance #2473 )
2016-05-17 16:43:11 +01:00
photonstorm
54683b7fb2
Sounds played using the Audio tag, that were paused and then resumed again (either directly in code, or via a game pause event) would not resume from the point at which they paused (thanks @rroylance #2473 )
2016-05-16 15:16:19 +01:00
photonstorm
58af40ca92
Added a bit more info to the SoundManager docs re: #2373
2016-04-07 01:07:19 +01:00
photonstorm
896b32a28c
SoundManager.muteOnPause is a new boolean that allows you to control if the Sound system gets muted automatically when a Phaser game pauses, such as when it loses focus. You may need to set this to false
if you wish to control the audio system from outside of your Phaser game, i.e. from DOM buttons or similar ( #2382 )
2016-04-06 02:09:22 +01:00
photonstorm
61bc4a8dca
Sound.play when using an AudioTag would ignore the muted state of the SoundManager and play regardless. It now checks the SoundManager.mute state on play, and sets the volume accorindingly (thanks @brianbunch #2139 )
2016-04-06 01:41:54 +01:00
photonstorm
988290631f
When setting a global volume for the SoundManager it would previously incorrectly calculate the volumes of AudioTag based Sound objects that were not played at volume 1. The new approach uses Sound.updateGlobalVolume which adjusts the Sound volume to be a percentage of the global volume. So if the global volume is 0.5 and the Sound volume is 0.5, the Sound will play with an actual volume of 0.25 (thanks @VitaZheltyakov #2325 )
2016-04-06 01:19:32 +01:00
Richard Davey
71056ccb69
Merge pull request #2371 from stoneman1/dev
...
Fixed video for future
2016-04-06 01:08:22 +01:00
photonstorm
f40cfbe2ae
2015 - 2016.
2016-04-04 22:16:16 +01:00
Stoneman1
4a29d5102d
Fixes issue #2325
2016-03-02 11:57:41 +02:00
Silvan Strübi
1b1c4ef0f5
AudioBufferSourceNode - same issue as on play:
...
I was able to reproduce this rare occurrence. It gets triggered by me in some cases when leaving focus and then resuming the sound. Same as we have had it only play, see => https://github.com/photonstorm/phaser/issues/2351
Cheers
2016-03-02 10:06:01 +09:00
photonstorm
08ce659447
Sound.position can no longer become negative, meaning calls to AudioContextNode.start with negative position offsets will no longer throw errors (thanks @Weedshaker #2351 )
2016-02-26 13:36:19 +00:00
photonstorm
15d952171c
SoundManager.destroy doesn't close the context if it's being stored in PhaserGlobal (thanks @brianbunch #2356 )
2016-02-26 13:31:45 +00:00
photonstorm
cc3a07bada
SoundManager.close now validates that context.close is a valid function before calling it (thanks @brianbunch #2355 )
2016-02-26 13:29:35 +00:00
Stoneman1
62f0a52544
Fixed issue with IE crashing on this.context.close() in SoundManager.js (There was no check if context exists)
2016-02-24 13:08:37 +02:00
Richard Davey
332fb6fe68
Fixed window global check.
2016-02-09 11:41:24 +00:00
Richard Davey
0610ddd15f
SoundManager.setTouchLock is no longer set if SoundManager.noAudio is true, or if the PhaserGlobal setting disableAudio
is true (thanks @bcjordan #2206 )
2016-02-03 23:23:36 +00:00
Richard Davey
3b686f906f
Moved the Sound.disconnect after the Sound.stop call in Web Audio ( #2280 )
2016-02-03 22:22:22 +00:00
Richard Davey
425ee09047
Sound.onEndedHandler now sets Sound.currentTime to be Sound.durationMS (thanks @stoneman1 #2237 )
2016-02-02 01:08:45 +00:00
Richard Davey
e7820dbe85
SoundManager.destroy now calls AudioContext.close (thanks @stoneman1 #2237 )
2016-02-02 01:08:35 +00:00
photonstorm
172f972d8c
Pausing a Sound that used a Marker for playback would fire the onMarkerComplete
signal by mistake as well as stop the fadeTween. This Signal is now only dispatched if Sound.stop is called and the Sound isn't paused (thanks Corin)
2015-12-02 12:41:20 +00:00
photonstorm
f64fc42f3e
The SoundManager now detects if the browser is running under iOS9 and uses a touchend callback to unlock the audio subsystem. Previous versions of iOS (and Android) still use touchstart. This fixes Apple's screw-up with regard to changing the way Web Audio should be triggered in Mobile Safari. Thanks Apple (thanks @MyCatCarlos for the heads-up #2095 )
2015-09-22 11:46:58 +01:00
Pappa
12d24d3677
Fix for AudioBufferSourceNode listener memory leak.
...
In Chrome, the AudioBufferSourceNode onended listeners were never being garbage collected. This frees up the listener for collection.
2015-09-08 17:56:17 +01:00
photonstorm
a8934c392d
Phaser.Sound will now automatically check the Cache to see if the audio file it is using is still there or not. If not then it will automatically called Sound.destroy
on itself. If you do not desire this result then you should ensure that you undertake all house-keeping yourself, and properly destroy Sound objects _before_ calling Cache.removeSound
( #1946 )
2015-07-27 14:02:04 +01:00
photonstorm
f15fe6706c
All undefined argument checks were changed from if (typeof x === 'undefined')
to if (x === undefined)
removing the typeof check and saving some bytes across the codebase in the process.
2015-07-22 10:37:15 +01:00
photonstorm
8356aacaa8
Trying out new Text pivot and mute handling.
2015-06-24 19:57:40 +01:00
photonstorm
1ed33cb06c
Setting mute to false on Sound that was never muted caused its volume to be set to zero (thanks @brianbunch #1870 )
2015-06-24 15:54:25 +01:00
photonstorm
1990bce48b
Sound.restart and Sound.stop now properly disconnect the sound from the gainNode (or external node) before stopping it, allowing restart to work correctly (thanks @eofs #1796 )
2015-06-16 16:24:47 +01:00
photonstorm
ab8c98676e
Sound.resume wouldn't properly restart looped sounds in Chrome after being paused. Phaser now specifically handles the Chrome 42 bug and later fix (thanks @nkovacs #1820 )
2015-06-16 14:28:46 +01:00
photonstorm
1c1a2ac195
Volume should default to 1 if undefined OR null (as from an Audio Sprite)
2015-06-09 20:55:20 +01:00
photonstorm
621e51d949
Docs update about the lovely 48000 Hz music bug.
2015-05-23 03:37:04 +01:00
photonstorm
4cd374691a
Wrapped the decodeAudio in a try/catch.
2015-05-14 23:21:19 +01:00
photonstorm
766b110f99
SoundManager now uses the new Touch.addTouchLockCallback
methods to handle mobile device audio unlocking.
2015-05-05 16:25:16 +01:00
photonstorm
7178ff61c7
jsdoc fixes.
2015-05-05 14:00:29 +01:00
photonstorm
d98b984ad2
SoundManager.volume now has its input value clamped to ensure it's between 0 and 1 (inclusive)
2015-05-05 11:04:14 +01:00
photonstorm
36c7084e01
Adjusting property order.
2015-05-05 10:59:54 +01:00
photonstorm
adad60f8f4
SoundManager.onVolumeChange is a new signal that is dispatched whenever the global volume changes. The new volume is passed as the only parameter to your callback.
...
SoundManager.onMute is a new signal that is dispatched when the SoundManager is globally muted, either directly via game code or as a result of the game pausing.
SoundManager.onUnMute is a new signal that is dispatched when the SoundManager is globally un-muted, either directly via game code or as a result of the game resuming from a pause.
2015-05-05 10:58:43 +01:00
photonstorm
e6ab4884a6
Set usingWebAudio if using it :)
2015-04-21 02:07:47 +01:00
photonstorm
8476a0b87f
One ! too many #1746
2015-04-17 14:26:01 +01:00
photonstorm
59beae762d
The SoundManager didn't accurately detect devices or browser environments with no sound card present and would try to carry on using a null Web Audio context (thanks @englercj #1746 )
...
SoundManager.pauseAll, resumeAll and stopAll now checks if the SoundManager.noAudio is set and ignores the calls.
SoundManager.usingWebAudio is set to `false` by default (used to be `true`) and is only explicitly set if Web Audio is available and hasn't been disabled in the PhaserGlobal object.
SoundManager.touchLocked is now set to `false` should the device be using legacy Audio, avoiding the unlock call running without need.
2015-04-17 03:49:20 +01:00
photonstorm
96e313e768
If you paused a Sound object that is using audio markers and then resumed it, it wouldn't correctly calculate the resume duration - causing the sound to sometimes play into the marker that followed it (thanks @AnderbergE #1669 )
2015-03-24 14:43:35 +00:00
photonstorm
0a45223cd4
Resuming a sound needs the onended handler adding back in again.
2015-03-04 00:32:33 +00:00
photonstorm
a69e53f901
Copyright date change.
2015-02-25 03:36:23 +00:00
photonstorm
e93ded324f
Added missing class var.
2015-02-22 19:30:34 +00:00
photonstorm
ba08498e73
Fixed bug with the watch list not checking decode status by key properly.
2015-02-20 00:58:05 +00:00
photonstorm
72d1c13b6b
Fixed jshint error.
2015-02-18 14:54:19 +00:00
photonstorm
ef3cb1f31d
Sound in Web Audio now uses AudioContext.onended to trigger when it will stop playing instead of using a time based value. This is only used if the sound doesn't loop and isn't an audio sprite, but will give a much more accurate Sound.onStop
event. It also prevents short audio files from being cut off during playback ( #1471 ) and accounts for time spent decoding.
2015-02-18 11:25:17 +00:00
photonstorm
74bee324a5
Sound.fadeIn now supports fading from a marker, as well as the entire audio clip, so now works with audio sprites (thanks @vorrin #1413 )
2015-02-11 13:52:16 +00:00
photonstorm
dfee82834d
Sound.loop even when set for WebAudio wouldn't use the AudioContext loop property because Sound.start was being invoked with an offset and duration. Now if loop
is true and no marker is being used it will use the native Web Audio loop support ( #1431 )
...
SoundManager.setDecodedCallback lets you specify a list of Sound files, or keys, and a callback. Once all of the Sound files have finished decoding the callback will be invoked. The amount of time spent decoding depends on the codec used and file size. If all of the files given have already decoded the callback is triggered immediately.
Sound.loopFull is a new method that will start playback of the Sound and set it to loop in its entirety.
2015-02-11 05:17:53 +00:00
photonstorm
ac14edae94
Sound.stop and Sound.destroy now halt a fade tween if in effect.
2015-02-03 16:17:03 +00:00
photonstorm
d37ffe6a8f
Sound.fadeTween is now used for Sound.fadeIn and Sound.fadeOut audio tweens.
...
Sound.stop and Sound.destroy now halt a fade tween if in effect.
2015-01-28 17:18:32 +00:00
photonstorm
65f8820514
SoundManager.unlock checks for audio start
support and falls back to noteOn
if not found.
2015-01-06 13:50:15 +00:00
photonstorm
b22233a0bc
docs update and sound marker check.
2015-01-02 04:14:44 +00:00
photonstorm
fa40b3a7a9
Removed readyState check as it breaks overlapping sounds.
2014-12-18 11:14:45 +00:00
photonstorm
269af69da5
Added extra checks to Sound.play to stop it throwing DOM Exception Error 11 if the sound.readyState
wasn't set or the sound was invalid. Also wrapped stop()
call in a
try catch`.
2014-12-17 13:07:19 +00:00
photonstorm
d8fee414b8
Merge remote-tracking branch 'origin/dev'
2014-12-03 10:40:35 +00:00
photonstorm
40c490ce23
Phaser 2.2 Release Candidate 8 (newsletter build)
2014-11-17 14:14:50 +00:00
photonstorm
ff8a138081
jshint fix
2014-11-16 21:18:29 +00:00
photonstorm
5cd4225412
If you are reloading a Phaser Game on a page that never properly refreshes (such as in an AngularJS project) then you will quickly run out of AudioContext nodes. If this is the case create a global var called PhaserGlobal
on the window object before creating the game. The active AudioContext will then be saved to window.PhaserGlobal.audioContext
when the Phaser game is destroyed, and re-used when it starts again ( #1233 )
2014-11-16 21:05:31 +00:00
Sheepolution
266adf06d8
Removed an unnecessary if-statement.
...
Not sure if it had any purpose. Maybe to make it more clear?
Just a suggestion of something I noticed.
2014-11-10 23:28:20 +01:00
photonstorm
0a86a7ef51
Time.now can no longer be relied upon to contain a timestamp value. If the browser supports requestAnimationFrame then Time.now
will contain the high resolution timer value that rAf generates. Otherwise it will contain the value of Date.now. If you require the actual time value (in milliseconds) then please use Time.time
instead. Note that all Phaser sub-systems that used to rely on Time.now
have been updated, so if you have any code that extends these please be sure to check it.
2014-11-08 20:01:10 +00:00
photonstorm
96fd0ade74
JSDoc fixes.
2014-10-21 22:43:42 +01:00
photonstorm
2657de0daa
Sound.fadeTo allows you to fade the Sound to the given volume over the duration specified (thanks @nickryall #1225 )
2014-10-15 21:48:00 +01:00
Richard Davey
33ebc10570
Merge pull request #1225 from nickryall/dev
...
Phaser.Sound.fadeTo Method
2014-10-15 21:44:42 +01:00
Bobby Wilson
0482684dc8
changed all typeof comparisons from == to ===
2014-10-10 21:52:06 -06:00
nickryall
f5db1b070e
Phaser.Sound.fadeTo Method
2014-10-10 11:03:13 +13:00
photonstorm
506a091257
Sound.allowMultiple allows you to have multiple instances of a single Sound playing at once. This is only useful when running under Web Audio, and we recommend you implement a local pooling system to not flood the sound channels. But it allows for one Sound object to play overlapping times, useful for gun effects and similar ( #1220 )
2014-10-09 14:44:25 +01:00
photonstorm
9e29a58d89
Sound.fadeOut(duration) will fade the Sound to a volume of zero over the duration given. At the end of the fade the Sound will be stopped and Sound.onFadeComplete dispatched.
...
Sound.fadeIn(duration, loop) will start the Sound playing, or restart it if already playing, set its volume to zero and then increase the volume over the duration given until it reaches 1. At the end of the fade the Sound.onFadeComplete event is dispatched.
2014-09-24 06:51:39 +01:00
Richard Davey
473e9a1d88
jshint fix
2014-09-23 22:28:15 +01:00
Richard Davey
01fd3df434
AudioSprite support is now built into the Loader and SoundManager. AudioSprites are like sprite sheets, only they consist of a selection of audio files and markers in a json configuration. You can find more details at https://github.com/tonistiigi/audiosprite (thanks @codevinsky #1205 )
...
Fixed AudioSprite jsdoc, casing and formatting issues.
2014-09-23 22:15:09 +01:00
Jeremy Dowell
7cce1366f2
jshint cleanup
2014-09-23 10:25:49 -05:00
Jeremy Dowell
dd0d1729ad
Phaser.AudioSprite
...
AudioSprite implementation for phaser.
Loads audio sprites based on the file format created with: https://github.com/tonistiigi/audiosprite
2014-09-23 10:21:29 -05:00
photonstorm
20551f9129
Lots of jsdocs fixes ready for the new doc generator.
2014-09-16 17:35:08 +01:00
photonstorm
8fec5169f0
Added Sound._muteVolume which stops Firefox and IE9 crashing if you try to unmute a sound that hasn't yet been muted, which can also happen as a result of a game visibility change (thanks @osmanzeki #1108 #1123 )
2014-09-01 03:13:05 +01:00
photonstorm
26a55bd202
SoundManager.destroy is a new method that will destroy all current sounds and reset any callbacks.
...
StateManager.clearCurrentState now handles the process of clearing down the current state and is now called if the Game is destroyed.
Game.destroy now clears the current state, activating its shutdown callback if it had one. It also now destroys the SoundManager, stopping any currently running sounds (#1092 )
2014-08-29 11:37:47 +01:00
photonstorm
52ea95d9ce
Sound.restart used to cause the Sound to double-up if it was already playing when called. Now correctly stops the sound before restarting it (thanks @wombatbuddy #1136 )
2014-08-29 01:06:29 +01:00
photonstorm
2293b64c94
Removing debug / console.log output.
2014-07-09 05:49:13 +01:00
Richard Davey
dd11e2a5a9
Merge pull request #840 from villetou/WebAudioExternalNodeFix
...
Web audio external node fix
2014-07-01 16:06:08 +01:00
j0hnskot
5ef8143322
Fixes bug #906
2014-06-24 01:59:44 +03:00
j0hnskot
cb0d9c5a69
Fixes bug #906 by adding a check for isDecoded in the update loop.
2014-06-15 21:27:32 +03:00
j0hnskot
5aec4cff8f
Fixes bug #906 by adding a check for isDecoded in the update loop.
2014-06-15 21:23:13 +03:00
photonstorm
7d436a7dc3
Update to #868
2014-06-05 13:17:32 +01:00
photonstorm
9aa10f7521
Sound.pause will no longer fire a Sound.onStop signal, and the pause values are set before the onPause signal is dispatched (thanks @AnderbergE, fix #868 )
2014-06-05 02:55:20 +01:00
photonstorm
369e2cc2d0
Sound.destroy(true) would call remove on the SoundManager, which in turn would throw a TypeError as it tried to remove the sound events twice (thanks @AnderbergE, fix #874 )
2014-06-05 02:50:53 +01:00
photonstorm
eee1183a6a
Forces use of a Canvas Renderer under CocoonJS automatically.
...
The SoundManager no longer requires a touch to unlock it, defaults to unlocked.
2014-05-29 23:17:18 +01:00
Ville Touronen
2e7c8de118
Fixed connecting to an externalNode in Sound.play() and Sound.resume().
2014-05-21 00:09:46 +03:00
photonstorm
86f6b114e8
Sound.stop on Samsung S4 would randomly throw a DOM error. Wrapped the audio stop in a try/catch (thanks FSDaniel)
2014-05-09 16:39:45 +01:00
photonstorm
6070bc63bc
Sound.play now returns the Sound object (thanks @AnderbergE, fix #802 )
2014-05-07 00:12:41 +01:00
photonstorm
fd9d454bc6
Documentation updates.
2014-05-01 02:38:12 +01:00
photonstorm
add6b3966c
jshint fix
2014-04-28 21:22:11 +01:00
photonstorm
a5cbd8f2a6
Fixed an issue where Sounds that had been paused via game code would un-mute if the game paused and resumed.
2014-04-28 20:30:47 +01:00
photonstorm
838027a93b
Timer.timeCap is a new setting allowing your Timers to protect against unexpectedly large delta timers.
2014-04-28 13:22:29 +01:00
photonstorm
ce6215c98a
Improved the docs to do with Sound duration / durationMS and added the extra output to the Debug.soundInfo (issue #630 )
2014-04-28 02:08:19 +01:00
photonstorm
de17263472
jshint fix
2014-04-01 20:57:52 +01:00
photonstorm
4d06298e64
Fixed silly SoundManager bug :)
2014-04-01 19:51:48 +01:00
photonstorm
03b80887f2
SoundManager.removeByKey(key) will remove all sounds from the SoundManager that have a key matching the given value.
2014-04-01 03:42:30 +01:00
photonstorm
3728f25d68
SoundManager.remove(sound) now lets you remove a sound from the SoundManager, destroying it in the process.
...
Sound.destroy will remove a sound and all local references it holds, optionally removing itself from the SoundManager as well.
2014-04-01 03:38:13 +01:00
photonstorm
407f71b70e
Tidied up Sound.js
2014-04-01 00:40:26 +01:00
photonstorm
3f8911d95f
SoundManager.boot will check to see if the AudioContext was created before carrying on (thanks @keyle, fix #669 )
2014-03-31 11:22:44 +01:00
Christian Wesselhoeft
61f18b675c
Trim trailing whitespace.
2014-03-25 14:56:04 -07:00
photonstorm
9c8f01cd7f
The volume given in Sound.play now over-rides that set in Sound.addMarker if specified ( fix #623 )
2014-03-21 15:43:59 +00:00
photonstorm
52118be088
Sound.onMarkerComplete event is now dispatched when a marker stops. See Sound.onLoop for a looping marker event (thanks registered99, fixes #500 )
2014-03-02 11:11:20 +00:00
photonstorm
d0fa50f014
Fixed issue stopping SoundManager.volume from working correctly on a global volume basis (fix # 488)
2014-02-26 14:40:55 +00:00
photonstorm
cc06a62b90
Pausing the game will now mute audio and resuming will un-mute, unless it was muted via the game ( fixes #439 )
2014-02-25 03:12:12 +00:00
Richard Davey
94133e4c11
Updated Sound.play loop check
2014-02-22 03:05:41 +00:00
photonstorm
ea4873e286
SoundManager.play() does not do anything with destroyOnComplete ( fix #333 )
2014-02-21 23:55:11 +00:00
photonstorm
0896c2fac7
Updating copyright year and README.
2014-02-05 16:54:59 +00:00
photonstorm
d1cd1df9a5
Lots of fixes and updates to the Button class, InputHandler for snap offsets, Sound looping and Stage scaling.
2013-12-31 17:03:09 +00:00
photonstorm
86f6ddcbc8
Two new particle examples and a group animation example. Also fixed CocoonJS sound issue and Cache sound locked bug.
2013-12-31 03:37:11 +00:00
photonstorm
ce4cf531d4
Added class constructors, fixed Stripshader, added relative Tween example and updated Tween source.
2013-12-30 16:54:00 +00:00
photonstorm
a361a18616
Updated IE11 check, forces IE11 to use Canvas renderer even in AUTO mode.
2013-12-13 14:04:14 +00:00
photonstorm
141337bed9
Heavily optimised PixiShader.
2013-11-26 05:13:56 +00:00
photonstorm
299115ca5d
The entire Phaser library has been updated to match the new JSHint configuration.
2013-11-25 04:40:04 +00:00
photonstorm
13a2cc2feb
Updating all files to adhere to the JSHint settings and fixing lots of documentation errors on the way.
2013-11-25 03:13:04 +00:00
photonstorm
155c863d69
New Timer class and scale event updates.
2013-11-24 11:04:58 +00:00
photonstorm
e620c99479
ShaderToy convertor up and working, lots of shaders being turned into Pixi filters :)
2013-11-20 02:28:28 +00:00
photonstorm
a6fac64248
Loads of issues reported on Github resolved (sprite crop, music resume, etc).
2013-10-24 04:27:28 +01:00
Richard Davey
f832bacfd6
More Docs!
2013-10-03 01:21:08 +01:00
Richard Davey
e85643abf4
Yet more documentation done.
2013-10-02 20:18:24 +01:00
Richard Davey
ca113b85aa
More docs coming on.
2013-10-01 16:39:39 +01:00
Richard Davey
0a98bb67d8
jsdoc blocks added to every file and tidied up.
2013-10-01 15:05:30 +01:00
Richard Davey
305b12d76b
Adding docs.
2013-10-01 15:01:46 +01:00
Richard Davey
16b1913de1
* Fixed issue in Sound.play where if you gave a missing marker it would play the whole sound sprite instead.
...
* Button.setFrames will set the current frame based on the button state immediately.
* InputHandler now creates the _pointerData array on creation and populates with one empty set of values, so pointerOver etc all work before a start call.
* Added Canvas.setUserSelect() to disable touchCallouts and user selections within the canvas.
* When the game boots it will now by default disable user-select and touch action events on the game canvas.
* Loaded.setPreloadSprite now rounds the width/height values and starts from 1. This fixes canvas draw errors in IE9/10 and Firefox.
2013-09-30 17:12:22 +01:00
Richard Davey
8d17e1f963
Sound duration fixes.
2013-09-30 12:17:21 +01:00
Richard Davey
31bbf05ace
* Fixed small bug stopping Tween.pause / resume from resuming correctly when called directly.
...
* Fixed an issue where Tweens.removeAll wasn't clearing tweens in the addition queue.
* Change: When you swap State all active tweens are now purged.
2013-09-30 11:15:50 +01:00
Richard Davey
18c695e9dd
PixiPatch and other 1.0.7 features
2013-09-27 09:57:08 +01:00
Richard Davey
bc02a1a05e
Fixing collision issues
2013-09-23 01:06:09 +01:00
Richard Davey
45426be0bc
Assets update
2013-09-20 23:21:12 +01:00
Webeled
26a595cd44
JSDocs update ;)
2013-09-19 16:34:48 +02:00
Webeled
bb9761aaf4
It loops but still problems on the constructor
2013-09-16 17:40:56 +02:00
Webeled
fc584cf6bc
Examples (audio, button,camera), and docs
...
Created some examples (audio, button,camera), and documented the source
code along the way
2013-09-16 16:37:30 +02:00
Richard Davey
f260108433
Tidying up source code for release. Also refactored World to use a Group instance, rather tha duplicate functions.
2013-09-11 13:21:07 +01:00
Richard Davey
87858d6bbf
Fixed a bug stopping legacy Audio from starting correctly. Also fixed an issue in the Loader causing it to not load the next file if an unsupported audio file was encountered. Fixed audio playback issues on Firefox/Waterfox as a result.
2013-09-11 11:33:27 +01:00
Richard Davey
e41e35fd09
Fixed an error that stopped 2 tweens from being able to run on the same object. Also refactored a lot of the classes to remove prototype properties and move them to local instance properties.
2013-09-10 20:40:34 +01:00
Richard Davey
a486bf6b4a
Phaser now running on iOS. Also fixed a legacy bug where a pending sound wouldn't play once it was touch unlocked. Also fixed Input not working on WebGL contexts. Added WebGL texture updates to the Group/World swap functions.
2013-09-10 16:46:39 +01:00
Richard Davey
c18de53bab
SoundManager converted and playing audio :)
2013-09-03 01:24:16 +01:00