Tengo un archivo mp3 que estoy almacenando en caché como tal:
const request = URL_TO_MY_MP3_FILE caches.open("my-cache").then(cache => { cache.add(request); }); Puedo ver que el archivo mp3 se almacena en caché en la pestaña Aplicación: 
Por cierto, ¿cómo me aseguro de que el archivo se almacene en caché como audio/mp3 y no como audio/mpeg ?
Más adelante, me gustaría recuperar el archivo mp3 del caché para poder reproducirlo en el navegador:
caches.open("my-cache").then(cache => { const response = cache.match(request); console.log(request, response); this.audio = new Audio(response.body); }) Mi primera pregunta es cómo acceder a ReadableStream dentro del cuerpo de la respuesta de Promise. Desafortunadamente, response.body es igual a undefined y no entiendo cómo acceder al archivo mp3 de otra manera.
En segundo lugar, ¿cómo me aseguro de que el archivo se almacene en caché como audio/mp3 y no como audio/mpeg ?
Encontré la respuesta aquí: ¿Cómo acceder al valor de una promesa?
caches.open("my-cache").then(cache => { const response = cache.match(request); console.log(request, response); response.then(function(result) { this.audio = new Audio(response.body); }.bind(this), false); })