В моем файле component.ts есть цикл, который преобразует аудиоданные WAV в MP3:
for (var i = 0; i < samples.length; i += sampleBlockSize) {
let sampleChunk = samples.subarray(i, i + sampleBlockSize);
var mp3buf = mp3encoder.encodeBuffer(sampleChunk);
if (mp3buf.length > 0) {
mp3Data.push(mp3buf);
}
this.convertedPercent = Math.floor( ( i / samples.length ) * 100);
console.log('convertedPercent: ' + this.convertedPercent);
}
console.log('This is where the HTML view jumps from 0% to 100%');
В моем component.html есть код, который показывает, какой процент аудио уже преобразован:
<p>Conversion is {{ convertedPercent }}% complete</p>
Во время преобразования он регистрирует правильный процент преобразования в консоль в режиме реального времени, однако представление остается на уровне завершения 0 %. Как только цикл заканчивается, он мгновенно переходит на 100%.
Я пытался:
this.cd.detectChanges();
- перенос строки, которая изменяет значение
convertedPercent
вzone.run()
- перенос строки, которая изменяет значение
convertedPercent
вrequestAnimationFrame()
Что же мне попробовать дальше?