Comments (2)
to see where the changed FF114->F115 behaviour originates from I was looking at canplay / canplaythrough logic (canplaythrough is 3s+ of buffered frames from the current position) and checked the sources revisions.
There, the 'Rewrite TimeUnit.h' patchset is a candidate that introduced regressions (this one). A current FF117 nightly from 2023-07-23 has a change that fixes the behaviour. I haven't fully understood how ChannelMediaDecoder::ComputePlaybackRate
alleviates it though (Edit: betting on the logic in DownloadProgressed()).
This isn't a howler.js issue, though workarounds help until the bugfix finds its release in the upcoming FF116 on August 1st.
from howler.js.
Hacky workaround:
if (isFirefox) { // it wouldn't break chrome, but I haven't tested exhaustively
window.Howler._canPlayEvent = 'canplay' // fixes the "wait for file complete downloaded"
}
var sound = new Howl({
src: 'foo.mp3',
preload: 'metadata' // prevents loading/caching the full file in background
})
Tested on macOS 13.4 and Linux.
Weirdly related to #1495, although I wasn't affected by that...
(hat tip to Manuel, if you're reading this!)
A proper fix would probably address Firefox's (presumed) changed events:
- https://github.com/goldfire/howler.js/blob/master/src/howler.core.js#L218
(detectcanplay
first?) - https://github.com/goldfire/howler.js/blob/master/src/howler.core.js#L994
(listen to multiple events?)
from howler.js.
Related Issues (20)
- When looping, playback position value is sometimes beyond the audio file's duration
- Turn media session on and off
- ALAC encoded files not playing
- Failure to load audio on latest Opera HOT 3
- Howler gets in interrupted state after minimized and opened again iOS
- Howler Sprite Visual example does not work on iphone
- Seamlessly play multiple sprites one after another with the howler.js library
- gap when audio is in loop using html5 HOT 1
- How to differentiate between a sound already played or about to be played based on soundID params?
- Some live streams (html5) buffer forever on Safari iOS 17.4 HOT 17
- On Safari, no error is triggered in case of a corrupted file
- keep crash on Safari 17.5 beta HOT 3
- Duration returns Infinity in chrome
- Audio is not playing when I phone goes to sleep mode. HOT 1
- Howler not working in background for iphone
- iOS 17.4 playback issue HOT 2
- Opera GX LVL5 (core: 109.0.5097.62) not working but Chrome, Firefox, Edge and Safari are all okay. HOT 4
- Audio doesnt play if i set html5 to true and audio doesnt play on background if i set html5 to false, Iphone latest ios version HOT 9
- seeking help re: Perf on iPad mobile Safari HOT 1
- onplay error not firing
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from howler.js.