Mídia de áudio segura não é reproduzida no Safari na primeira clique

Até agora, isso tem sido uma aventura… Consegui configurar a depuração remota entre o Chrome no meu Ubuntu e o Safari no iOS no meu iPhone, com muitas tribulações. No entanto, de forma irritante, a aba Rede está vazia, o que é, de certa forma, a mais importante para isso.

Percebi que definir preload="metadata" faz com que o áudio seja reproduzido no primeiro clique no Safari no iOS, enquanto, se definido como preload="none", é necessária uma sequência de Reproduzir > Pausar > Reproduzir para que o áudio realmente toque.

Testei isso com video e parece que existe um problema semelhante.

A mudança para preload="none" foi feita por causa do seu relatório de bug aqui: Secure media uploads expire. Estamos agora em uma espécie de zona crepuscular irritante, pois voltar a definir preload como metadata reintroduzirá o problema mencionado acima. Recentemente, aumentamos o tempo de expiração das URLs assinadas para 5 minutos: FIX: Increase time of DOWNLOAD_URL_EXPIRES_AFTER_SECONDS to 5 minutes by martin-brennan · Pull Request #10160 · discourse/discourse · GitHub, então o bug original será menos um problema agora… mas ainda será um problema.

Ainda estou pensando sobre isso e mexendo nas coisas… Não tenho certeza se podemos ter o melhor dos dois mundos aqui. Não é uma experiência ideal para mídias seguras exigirem múltiplos cliques para serem visualizadas.

Edição: Consegui fazer a aba Rede do meu depurador funcionar. Um exemplo em nossa instância interna do Discourse para uma tag audio com preload="none":

  1. Pressione Reproduzir: GET /secure-media-uploads/dev/original/4X/6/1/8/618a6b19a07de18205cc9889cb604e414b30372b.mp3, que retorna um status de Finished.

  2. Pressione Pausar.

  3. Pressione Reproduzir: GET presigned_url_here, que retorna um status de 206 Partial Content, e o áudio carrega corretamente.

O estranho aqui é que com preload=“metadata” obtemos exatamente a mesma sequência de requisições, com apenas um clique em Reproduzir. É como se o Safari buscasse os metadados no primeiro clique em Reproduzir e, em seguida, precisasse de uma pausa e de mais um clique em Reproduzir para tocar o áudio.

Não tenho certeza se isso acontece em outros dispositivos, como Android? Não tenho um dispositivo para testar lá.