如何防止流关闭?

编程入门 行业动态 更新时间:2024-10-10 02:22:13

<a href=https://www.elefans.com/category/jswz/34/1771290.html style=如何防止流关闭?"/>

如何防止流关闭?

const ToneStream = require('tone-stream')                                                                            
const Speaker = require('speaker');                                                                                  
const blessed = require('blessed');                                                                                  
const format = {                                                                                                     
  sampleRate: 8000,                                                                                                  
  bitDepth: 16,                                                                                                      
  channels: 1                                                                                                        
}                                                                                                                    

let stream = new ToneStream(format);                                                                                 
const speaker = new Speaker(format);                                                                                 

stream.pipe(speaker);                                                                                                

var screen = blessed.screen({                                                                                        
  smartCSR: true                                                                                                     
});                                                                                                                  

let boxarray = [];                                                                                                   

for(let i = 0; i < 10; i++) {                                                                                        
  let box = blessed.box({                                                                                            
     top: "0%",                                                                                                      
     left: (i/10 *100).toString() + '%',                                                                             
     width: (1/11 *100).toString() + '%',                                                                            
     height: "100%",                                                                                                 
     tags: true,                                                                                                     
     style: {                                                                                                        
       bg: "white"                                                                                                   
     }                                                                                                               
  });                                                                                                                
  box.on('click', () => {                                                                                            
    stream.add([4000, 440]);                                                                                         
    console.log(i);                                                                                                  
  });                                                                                                                
  boxarray.push(box);                                                                                                
}                                                                                                                    

boxarray.forEach((box) => {                                                                                          
    screen.append(box);                                                                                              
});                                                                                                                  

screen.key(['escape', 'q', 'C-c'], function(ch, key) {                                                               
  return process.exit(0);                                                                                            
});                                                                                                                  

screen.render(); 

我正在尝试单击每个UI框时发出提示音。我添加到框中的onclick事件无法正常工作。 console.log有效,但没有声音播放。单击ui框时如何播放提示音?对stream的引用仍然存在,我可以在不接收null的情况下对其进行控制台记录。

回答如下:

正如我在评论中所推测的,默认情况下,.pipe()将在完成管道操作后关闭可写流。因此,您已成功调用.add(),但流已关闭,因此.add()不执行任何操作。

假设音频流遵循正常的流规则,您可以向.pipe()添加一个选项,以防止其像这样自动关闭:

stream.pipe(speaker, {end: false});

如流文档中的here所述。

更多推荐

如何防止流关闭?

本文发布于:2024-05-13 10:37:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1759431.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何防止

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!