在我的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
in的值zone.run()
- 换行改变
convertedPercent
in的值requestAnimationFrame()
接下来我应该尝试什么?