【发布时间】:2015-08-30 16:00:13
【问题描述】:
我知道可以更改音频标签(或音频 js 对象)的播放速率,但我想知道是否可以更改播放速率然后获取 AudioBuffer,或者手动更改数组本身? (我知道音频对象有一些魔力,所以它不会改变音高或声音失真 - 怎么样?!)
【问题讨论】:
标签: javascript audio web-audio-api
我知道可以更改音频标签(或音频 js 对象)的播放速率,但我想知道是否可以更改播放速率然后获取 AudioBuffer,或者手动更改数组本身? (我知道音频对象有一些魔力,所以它不会改变音高或声音失真 - 怎么样?!)
【问题讨论】:
标签: javascript audio web-audio-api
如果“获取 AudioBuffer”是指您想要以不同的播放速率播放 AudioBuffer 的结果,那么可以,但不能直接。
一种方式:创建一个OfflineAudioContext,创建相应的AudioBufferSource和AudioBuffer。将源连接到离线上下文并以所需的播放速率播放源。离线上下文将以所需的速率播放原始源的音频缓冲区。
请注意,AudioBufferSource 的 PlaybackRate 属性不保留音高。如果你想保留音高,你必须做其他事情。
【讨论】: