In my Meteor React App I am using a modified version of React Howler to play two audio tracks at once (two instances of Howler). I also implemented a simple crossfader to change the audio volume of both tracks at once, which works great in Chrome and on Android. But when I tested it on iOS, I realized it plays the audio just fine but the volume does not change.
The weird thing about this: When I read out the current volume at each time step (the player updates 10 times per second), it outputs the correct values on every platform. This means, volume is being set and stored correctly on iOS but the volume you hear just does not change.
Here's how the volume functions work in my version of ReactHowler:
get volume() {
return this._howler.volume();
}
set volume(val) {
if(this._howler.volume() != val){
console.log("setting volume to " + val)
}
this._howler.volume(val);
}
Console output looks fine, as described earlier. When the crossfader value is changed, it shows
setting volume to 0.35
howler volume: 0.35 (this is output at every time frame for debugging purposes)
howler volume: 0.35
...