EDITAR: antes de que pueda acceder a los datos de una canción, debe tener la entrada del usuario. nota adicional: la canción se reproduce a velocidad normal pero la grabadora funciona a 1-2 fps. Así que la animación es corta y rápida.
Estoy trabajando en p5.js para hacer una visualización de música, tengo una lista de reproducción de mp3 para los que quiero hacer clips y estoy usando frameCount para restablecer el capturador cuando la canción termina.
He incluido todo el código que sería relevante en cuanto a por qué song.duration() devuelve cero.
var song // var songs = [] var fft var particles = [] var backgroundimage var focus var s function preload() { // for(var i = 0; i < 20; i++) { // songs.push(loadSound('audio/audio'+(i+1)+'.mp3')) // console.log(songs[i].duration()) // } song = loadSound('audio1.mp3') console.log(song.duration()) img = loadImage('picture/image.png') } function setup() { createCanvas(1920, 1080) fft = new p5.FFT() imageMode(CENTER) angleMode(DEGREES) focus = {x: 250, y: 250} s=0 //backgroundimage = new AnimatedImage(img) } function draw() { //This is to test why the array of songs have no duration() if( frameCount === 1){ capturer.start() song.play() } else if (frameCount === timetoframes(song.duration())) { capturer.stop() capturer.save() noLoop() } // if (frameCount === songs[s].duration() * 24) { // capturer.stop() // capturer.save() // frameCount = 1 // s++ // } // if( frameCount === 1 ) { // capturer.start() // songs[s].play() // }