Necesito cargar el archivo de audio local en la etiqueta <audio> .
Lo hice con el siguiente código.
Deje que el usuario elija un archivo con:
<ion-input type="file" (change)="laodLocalFile($event)"> Prepárelo para la etiqueta <audio> :
laodLocalFile(event: any) { file_url = URL.createObjectURL(event.target.files[0]); document.getElementById('audio_file').setAttribute("src", file_url); }Y úsalo de la siguiente manera:
<audio id="audio_file" type="audio/mpeg" controls></audio>Lo probé con varios archivos mp3 diferentes. Funcionó varias veces, pero la mayoría de las veces no funcionó, sin ninguna advertencia o error.
¿Cuál puede ser el problema?
Debe usar domeSanitizer y bypassSecurityTrustUrl() este método pasa por alto la seguridad y confía en que el valor dado sea una URL de estilo seguro, es decir, un valor que se puede usar en hipervínculos o src
constructor(private domSanitizer:DomSanitizer) { }Y en tu método: ...
this.mediaSrc = this.domSanitizer.bypassSecurityTrustUrl(file_url);