|
1 | 1 | /*! |
2 | | - * howler.js v2.2.3 |
| 2 | + * howler.js v2.2.4 |
3 | 3 | * howlerjs.com |
4 | 4 | * |
5 | 5 | * (c) 2013-2020, James Simpson of GoldFire Studios |
|
265 | 265 |
|
266 | 266 | // Opera version <33 has mixed MP3 support, so we need to check for and block it. |
267 | 267 | var ua = self._navigator ? self._navigator.userAgent : ''; |
268 | | - var checkOpera = ua.match(/OPR\/([0-6].)/g); |
| 268 | + var checkOpera = ua.match(/OPR\/(\d+)/g); |
269 | 269 | var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33); |
270 | 270 | var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1; |
271 | 271 | var safariVersion = ua.match(/Version\/(.*?) /); |
|
2167 | 2167 | var self = this; |
2168 | 2168 | var isIOS = Howler._navigator && Howler._navigator.vendor.indexOf('Apple') >= 0; |
2169 | 2169 |
|
| 2170 | + if (!node.bufferSource) { |
| 2171 | + return self; |
| 2172 | + } |
| 2173 | + |
2170 | 2174 | if (Howler._scratchBuffer && node.bufferSource) { |
2171 | 2175 | node.bufferSource.onended = null; |
2172 | 2176 | node.bufferSource.disconnect(0); |
|
2586 | 2590 | /*! |
2587 | 2591 | * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported. |
2588 | 2592 | * |
2589 | | - * howler.js v2.2.3 |
| 2593 | + * howler.js v2.2.4 |
2590 | 2594 | * howlerjs.com |
2591 | 2595 | * |
2592 | 2596 | * (c) 2013-2020, James Simpson of GoldFire Studios |
|
3099 | 3103 | panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : pa.panningModel |
3100 | 3104 | }; |
3101 | 3105 |
|
3102 | | - // Update the panner values or create a new panner if none exists. |
| 3106 | + // Create a new panner node if one doesn't already exist. |
3103 | 3107 | var panner = sound._panner; |
3104 | | - if (panner) { |
3105 | | - panner.coneInnerAngle = pa.coneInnerAngle; |
3106 | | - panner.coneOuterAngle = pa.coneOuterAngle; |
3107 | | - panner.coneOuterGain = pa.coneOuterGain; |
3108 | | - panner.distanceModel = pa.distanceModel; |
3109 | | - panner.maxDistance = pa.maxDistance; |
3110 | | - panner.refDistance = pa.refDistance; |
3111 | | - panner.rolloffFactor = pa.rolloffFactor; |
3112 | | - panner.panningModel = pa.panningModel; |
3113 | | - } else { |
| 3108 | + if (!panner) { |
3114 | 3109 | // Make sure we have a position to setup the node with. |
3115 | 3110 | if (!sound._pos) { |
3116 | 3111 | sound._pos = self._pos || [0, 0, -0.5]; |
3117 | 3112 | } |
3118 | 3113 |
|
3119 | 3114 | // Create a new panner node. |
3120 | 3115 | setupPanner(sound, 'spatial'); |
| 3116 | + panner = sound._panner |
3121 | 3117 | } |
| 3118 | + |
| 3119 | + // Update the panner values or create a new panner if none exists. |
| 3120 | + panner.coneInnerAngle = pa.coneInnerAngle; |
| 3121 | + panner.coneOuterAngle = pa.coneOuterAngle; |
| 3122 | + panner.coneOuterGain = pa.coneOuterGain; |
| 3123 | + panner.distanceModel = pa.distanceModel; |
| 3124 | + panner.maxDistance = pa.maxDistance; |
| 3125 | + panner.refDistance = pa.refDistance; |
| 3126 | + panner.rolloffFactor = pa.rolloffFactor; |
| 3127 | + panner.panningModel = pa.panningModel; |
3122 | 3128 | } |
3123 | 3129 | } |
3124 | 3130 |
|
|
0 commit comments