El audio de medios seguros no se reproduce en Safari al primer clic

Hasta ahora, esto ha sido una aventura… logré configurar la depuración remota entre Chrome en mi máquina Ubuntu y Safari en iOS en mi iPhone, aunque con muchos tropiezos. Sin embargo, lo molesto es que la pestaña de Red (Network) aparece en blanco, y esa es, en cierto modo, la más importante para este caso.

He descubierto que establecer preload="metadata" hace que el audio se reproduzca al primer clic en Safari en iOS, mientras que si se configura como preload="none", se requiere una secuencia de Reproducir > Pausar > Reproducir para que el audio realmente se reproduzca.

Probé esto con video y parece que existe un problema similar.

El cambio a preload="none" se realizó debido a su informe de error aquí: Secure media uploads expire. Ahora nos encontramos en una especie de zona crepuscular incómoda, porque volver a poner preload en metadata reintroduciría el problema mencionado anteriormente. Recientemente aumentamos la expiración de las URL firmadas a 5 minutos: FIX: Increase time of DOWNLOAD_URL_EXPIRES_AFTER_SECONDS to 5 minutes by martin-brennan · Pull Request #10160 · discourse/discourse · GitHub, por lo que el error original será menos problemático ahora… pero seguirá siendo un problema.

Sigo pensando en esto y probando cosas… No estoy seguro de si podemos tener lo mejor de ambos mundos aquí. No es una experiencia ideal que los medios seguros requieran múltiples clics para verse.

Edición: Logré que la pestaña de Red de mi depurador funcione. Un ejemplo en nuestra instancia interna de Discourse para una etiqueta audio con preload="none":

  1. Presiona Reproducir: GET /secure-media-uploads/dev/original/4X/6/1/8/618a6b19a07de18205cc9889cb604e414b30372b.mp3, que devuelve un estado de Finished.

  2. Presiona Pausa.

  3. Presiona Reproducir: GET presigned_url_here, que devuelve un estado de 206 Partial Content, y el audio se carga correctamente.

Lo extraño aquí es que con preload=“metadata” obtenemos exactamente la misma secuencia de solicitudes, pero con un solo clic en Reproducir. Es como si Safari obtuviera los metadatos al primer clic en Reproducir y luego necesitara una pausa y volver a reproducir para que el audio suene.

No estoy seguro de si esto ocurre en otros dispositivos, por ejemplo, en Android. No tengo un dispositivo para probarlo allí.