AudioContext: phương thức createMediaStreamTrackSource()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Phương thức createMediaStreamTrackSource() của giao diện AudioContext tạo và trả về một MediaStreamTrackAudioSourceNode, đại diện cho một nguồn âm thanh mà dữ liệu của nó đến từ MediaStreamTrack được chỉ định.
Điều này khác với createMediaStreamSource(), vốn tạo một MediaStreamAudioSourceNode có âm thanh đến từ audio track trong một MediaStream được chỉ định mà id của nó đứng đầu theo thứ tự từ điển.
Cú pháp
createMediaStreamTrackSource(track)
Tham số
track-
MediaStreamTracksẽ được dùng làm nguồn cho toàn bộ dữ liệu âm thanh của nút mới.
Giá trị trả về
Một đối tượng MediaStreamTrackAudioSourceNode đóng vai trò nguồn cho dữ liệu âm thanh có trong audio track được chỉ định.
Ví dụ
Trong ví dụ này, getUserMedia() được dùng để yêu cầu quyền truy cập micro của người dùng. Khi quyền truy cập đó đã có, một audio context được thiết lập và một MediaStreamTrackAudioSourceNode được tạo bằng createMediaStreamTrackSource(), lấy âm thanh từ audio track đầu tiên trong luồng được getUserMedia() trả về.
Sau đó, một BiquadFilterNode được tạo bằng createBiquadFilter(), rồi được cấu hình theo ý muốn để thực hiện bộ lọc lowshelf trên âm thanh đi từ nguồn vào. Đầu ra từ micro sau đó được định tuyến vào bộ lọc biquad mới, và đầu ra của bộ lọc lại được định tuyến tới destination của audio context.
navigator.mediaDevices
.getUserMedia({ audio: true, video: false })
.then((stream) => {
audio.srcObject = stream;
audio.onloadedmetadata = (e) => {
audio.play();
audio.muted = true;
};
const audioCtx = new AudioContext();
const audioTracks = stream.getAudioTracks();
const source = audioCtx.createMediaStreamTrackSource(audioTracks[0]);
const biquadFilter = audioCtx.createBiquadFilter();
biquadFilter.type = "lowshelf";
biquadFilter.frequency.value = 3000;
biquadFilter.gain.value = 20;
source.connect(biquadFilter);
biquadFilter.connect(audioCtx.destination);
})
.catch((err) => {
// Handle getUserMedia() error
});
Thông số kỹ thuật
| Specification |
|---|
| Web Audio API> # dom-audiocontext-createmediastreamtracksource> |
Tương thích trình duyệt
Xem thêm
- Web Audio API
- Using the Web Audio API
MediaStreamTrackAudioSourceNode