Mat*_*att 5 firefox mediastreamsource web-audio-api
Firefox 对音频媒体流的音频重采样能力有限。如果输入媒体流的采样率与 AudioCotext 的采样率不同,则会抱怨:
DOMException: AudioContext.createMediaStreamSource: Connecting AudioNodes from AudioContexts with different sample-rate is currently not supported.
Run Code Online (Sandbox Code Playgroud)
例如,如果我们得到这样的音频流:
navigator.mediaDevices.getUserMedia(constraints).then(stream => {
let context = new (window.AudioContext || window.webkitAudioContext)({sampleRate : 48000});
let audioInput = this.context.createMediaStreamSource(stream);
});
Run Code Online (Sandbox Code Playgroud)
Firefox 会抱怨采样率不匹配 - 如果音频子系统中的音频上下文和硬件设备设置之间的采样率不同。
我找不到从流中的音轨获取采样率的方法。我试过了 :
let tracks = stream.getAudioTracks();
let settings = tracks[0].getSettings();
let constraints = tracks[0].getConstraints();
Run Code Online (Sandbox Code Playgroud)
但这些对象中没有一个包含流的sampleRate。
是否有另一种方法来查询音轨/流的采样率?
小智 2
似乎有效的方法是将音频流从 getUserMedia 连接到默认的 AudioContext,没有任何限制(不指定采样率)。连接流后,您可以查看AudioContext.sampleRate
getUserMedia() 中的流采样率。
归档时间: |
|
查看次数: |
759 次 |
最近记录: |