8thwall / web

8th Wall Web projects and resources.
519 stars 326 forks source link

Autoplay not autoplaying with image target #229

Closed Mickellg closed 11 months ago

Mickellg commented 11 months ago

My image is detected and everything works well, but even though I have autoplay in the video tag it doesn't autoplay when image is detected. Is there a way to auto play when image target is detected?

dattanchu commented 11 months ago

You can check if the issue is with the autoplay set up or with image target event set up. First use that same video tag and put it on your page and make it visible/not visible using a button. Does the video autoplay when it is visible? If it does not then the issue is with your autoplay set up.

Also, don't forget that autoplay will not work on video without muted.

Mickellg commented 11 months ago

Thank you @dattanchu from what I'm seeing now is that the problem just happens on iphone/IOS and not on android.

Mickellg commented 11 months ago

I figured out that on IOS, there is a fix for IOS 17 where you have to have for microphone permissions as well or the sound sometimes plays in the call speaker and not the speakers on the bottom of the phone. Also autoplay doesn't work, at least on iphone, if the low power mode or battery saver mode is on.

put this in app.js to fix the iOS 17 issue:

const onxrloaded = () => {
  const device = XR8.XrDevice.deviceEstimate()
  if (device.os === 'iOS' && device.osVersion.slice(0, 2) === '17') {
    console.log('Requesting microphone due to audio isse in iOS 17. See https://bugs.webkit.org/show_bug.cgi?id=262569')
    XR8.addCameraPipelineModule({
      name: 'request-mic',
      requiredPermissions: () => ([XR8.XrPermissions.permissions().MICROPHONE]),
    })
  }
}

window.XR8 ? onxrloaded() : window.addEventListener('xrloaded', onxrloaded)
dattanchu commented 11 months ago

I see. Thanks for circling back with a solution.