I create sound which was set to be auto-play, just after a button click event . There still a loudspeaker on the screen. The user has interact with the screen so I suppose there should be no loudspeaker. Why is that?
Thats’s a feature of most browsers to avoid auto playing sounds It’s a bit annoying for developers but as a user I appreciate not being blasted with loud ad sounds and such
If you would perform forum search you’ll find a lot of similar topics with ready-to-use solutions.
Here is Chrome policy with explanations - Autoplay policy in Chrome - Chrome Developers
For XR mode this works:
const xrHelper = await scene.createDefaultXRExperienceAsync({
floorMeshes: ground,
// ...etc
})
const music = new Sound( 'Music', '<ABSOLUTE URL HERE>', scene, null )
xrHelper.baseExperience.sessionManager.onXRSessionInit.add(() => {
music.play()
})
xrHelper.baseExperience.sessionManager.onXRSessionEnded.add(() => {
music.stop()
})
Yeah , I know it’s browser’s policy. But as it said in the image below, I create the sound AFTER the user click a BabylonJS button which indicate the user has interacted with the browser so that I suppose the music should auto play. And it does sometime ago, but suddenly it doesn’t work.
Frustrating, isn’t it? I somehow recall @RaananW said they are working towards a new audio player (or was it video?). Not sure it will address this issue. But then, as @labris said, there are still workarounds you can use for the time being. A bit tedious to search and implement but I suppose that’s all there is.
And I actually do agree with @carolhmj comment. Sadly, some (bastard ) people would just make an abuse of the autoplay.
I recommend trying to start playing the sound in response to the user clicking on an html button instead of a Babylon button. Because some browsers, like Chrome on Mac for instance, don’t allow audio in response to canvas clicks but do in response to eg html buttons or keyboard input.
Might be , will give it a try
Autoplay will forever be an issue…
@docEdub is working on the audio engine revamp, and I am sure that he will work on that issue as well. This is a WIP, you can follow the issue on our public github
I found the reason why audio can not auto play. But I do not know the root reason. That is if I comment the code in the attached image, then the audio will be able to auto play, otherwise not.