小编mr_*_*r_j的帖子

暂停/播放和停止节点流

我正在致力于在树莓派上创建一个基本的音频播放器。我在客户端上有一个基本的 mp3 播放器,带有基本控件...播放/暂停和停止。当用户点击播放时,socket 将一个 mp3 url 发送到使用节点的服务器,该节点捕获 url 并在扬声器上播放。在服务器上暂停/恢复播放流时遇到问题。下面是我的代码

var app = require("express")();
var http = require('http').Server(app);
var io = require("socket.io")(http);
var lame = require('lame');   
var request = require('request');
var Speaker = require('speaker');

io.on('connection', function(socket){
var playing;
var decoder = new lame.Decoder();

playing = socket.on('play', function(data){
 var stream;
 stream = request(data.songurl);

 decoder.on('format', function(){
   mpg123Util.setVolume(decoder.mh, 1.0)
})
 return stream;

 stream.pipe(decoder).pipe(speaker);
 setTimeout(function(){
   console.log('pausing')
   stream.unpipe(decoder).unpipe(speaker);
 }, 10000);

   stream.on('end', function(){
     console.log('ended')
     stream.unpipe(decoder).unpipe(speaker);
    })
  })

 socket.on('pause', function(data){
   // console.log(playing)
  playing.unpipe(decoder).unpipe(speaker);
 })
Run Code Online (Sandbox Code Playgroud)

当我单击暂停按钮时,我收到错误“无法读取未定义的属性‘管道’”,因为当时尚未定义“流”。有没有办法检测是否存在现有流以及如何暂停/恢复该流?

audio-streaming node.js

5
推荐指数
0
解决办法
1828
查看次数

在php中添加数组

阵列已被全面覆盖,但仍然难以解决如何解决这个问题.我有两个数组,我想合并而不会覆盖重复的键,即

Array1
(
    [0] => 0
    [1] => 1
    [2] => 1
    [3] => 1
    [4] => 1
    [5] => 0
    [6] => 0
)

+ 

Array2
(
    [0] => 0
    [1] => 0
    [2] => 0
    [3] => 0
    [4] => 0
    [5] => 0
    [6] => 1
)
Run Code Online (Sandbox Code Playgroud)

我理想的结果是

Array1 + Array2
(
    [0] => 0
    [1] => 1
    [2] => 1
    [3] => 1
    [4] => 1
    [5] => 0
    [6] => 1
)
Run Code Online (Sandbox Code Playgroud)

我该怎么办?我尝试过使用+但是它会给出第一个数组作为结果

php arrays

0
推荐指数
1
解决办法
102
查看次数

标签 统计

arrays ×1

audio-streaming ×1

node.js ×1

php ×1