私は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);
...素晴らしいですよ!そして今、
setTimeout(()=>{
sound.pause();
console.log(sound.isPaused()); // => true/although sound is still playing
}, 3000);
...待って、なぜこれが動作していない...のは、反対のことを試してみて、3秒後に音を一時停止しましょうか?そして、なぜsound.isPaused()はサウンドがまだ再生されているのに、 "true"を表示するのですか?それはバグですか、何か間違っていますか?
Node.jsのドキュメントと、Node.jsのストリームに関するチュートリアルのいくつかを説明しましたが、説明を見つけることができませんでした。このチュートリアルでは、setTimout()を使用してストリームを再開しますが、このようにストリームを一時停止することはできません。
動作しない完全なソースコードを共有 – advncd
どういう意味ですか?それが完全なコードです。 – user2956577
バッファーなのですか? 3秒間待ってから一時停止してください。その間にデータをバッファしている可能性があります。それは最終的に停止するのですか? –