내가 Node.js를 (v4.4.7) 함께 일하고 있어요 및 사운드를 재생하기 위해 몇 줄을 작성했습니다 ...Node.js를 일시 중지와의 setTimeout와 재개 스트림()
const Speaker = require('audio-speaker/stream');
const Generator = require('audio-generator/stream');
const speaker = new Speaker({
channels: 1, // 1 channel
bitDepth: 16, // 16-bit samples
sampleRate: 44100 // 44,100 Hz sample rate
});
// Streams sample values...
const sound = new Generator(
//Generator function, returns sample values
function (time) {
return Math.sin(Math.PI * 2 * time * 2000);
},
{
//Duration of generated stream, in seconds, after which stream will end.
duration: Infinity,
//Periodicity of the time.
period: Infinity
});
// Pipe value stream to speaker
sound.pipe(speaker);
... 만세! 이제 3 초 후에 사운드를 일시 중지하고 다시 시작해 봅시다.
sound.pause();
setTimeout(()=>{
sound.resume();
console.log(sound.isPaused()); // => false
}, 3000);
... 훌륭하게 작동합니다. 이제 3 초 후에 반대쪽으로 소리를 들여 봅시다.
setTimeout(()=>{
sound.pause();
console.log(sound.isPaused()); // => true/although sound is still playing
}, 3000);
... 잠깐, 왜이 기능이 작동하지 않습니까? 그리고 사운드는 왜 여전히 재생되고 있지만 isPaused()는 "true"를 보여줍니다. 벌레이거나 내가 뭔가 잘못하고 있는거야?
Node.js 문서 및 Node.js의 스트림에 대한 몇 가지 자습서를 통해 설명을 찾을 수 없습니다.이 튜토리얼에서는 setTimout()을 사용하여 스트림을 다시 시작하지만 그 이유에 대해서는 전혀 말하지 않습니다 이 방법으로 스트림을 일시 중지 할 수 없습니다.
작동하지 않는 전체 소스 코드 공유 – advncd
무엇을 의미합니까? 그것이 전체 코드입니다. – user2956577
완충 물입니까? 일시 정지하려면 3 초 정도 기다려야합니다. 그 시간 동안 데이터를 버퍼링하는 것이므로 소리가 계속 나옵니 까? 그것은 결국 멈출 수 있습니까? –