Articles of audiostream媒体

暂停/播放和停止节点stream

我正在创build一个覆盆子pi的基本audio播放器。 我有一个基本的MP3播放器在客户端的基本控制…播放/暂停和停止。 当用户点击播放时,套接字发送一个mp3 url到服务器,该服务器正在使用捕获url的节点并在扬声器上播放。 在使stream在服务器上暂停/继续播放时遇到问题。 以下是我的代码 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; […]

使用socketio的audio聊天

我在nodejs中是新的。 我正在开发语音聊天应用程序,在应用程序客户端可以说话,他的声音将广播(使用nodejs服务器)到其他客户端,我用socketio从麦克风发送声音到服务器,但我不知道如何接收器声音在客户端,谁能帮我? 用于发送语音的客户端代码(我不知道这是从麦克风发送语音的真实方式): navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; navigator.getUserMedia( {audio:true}, gotStream , onError ); function gotStream(stream) { var context; if (window.AudioContext) { context = new AudioContext(); } else { context = new webkitAudioContext(); } var mediastream = context.createMediaStreamSource(stream); var bufferSize = 2048; var myscriptnode = context.createScriptProcessor(bufferSize, 1, 1); myscriptnode.onaudioprocess = function […]

蓝牙audiostream从Android到电子应用程序?

我目前正在用Electron构build一款树莓派车载电脑。 几乎一切都完成了。 剩下两件事。 其中之一是从我的手机到电子应用程序的蓝牙audiostream。 有没有办法通过Android手机的“高级audio”蓝牙服务来实现? 我想要一个像蓝牙的地方,可以播放/暂停,跳过等歌曲。 蓝牙连接本身不是问题。 已经做到了OBDII适配器,以获得一个不错的汽车健康监测。 先谢谢你!

客户端nodeJS传递stream,用于audiostream

我们在一个stream媒体工具上工作,例如能够播放Youtube的音乐。 我们用NodeJS和YTDL做了第一个镜头。 它完全没问题,除了stream从Youtube到我们的服务器,然后到客户端,我们想直接从Youtube到客户端的stream。 为此,我在YTDL上使用了YTDL ,所以现在我可以在客户端获得一个pass-through nodeJSstream,但是我不知道如何使用它,因为它没有使用像.pipe()这样的.pipe()方法,也没有如何获取stream原始数据并将其写入临时的mp3文件。 我知道这不是一个微不足道的方法,但这是我第一次做这样的事情,而且我对这个问题的经验也不是很多,所以如果你有其他方法可行的话,我会乐于听他们的。

连接“audio/ x-wav”缓冲区并使用“传输编码”服务:“分块”

这个问题是对前一个问题的跟进,由于@thejh而解决了。 我试图将文本转换为audio,并将数据作为“分块”数据提供给客户端。 到目前为止我的头像是这样的: res.writeHead(200, { 'Content-Type': 'audio/wav', // I tried 'audio/x-wav' as well 'Transfer-Encoding': 'chunked' }); 然后,我将文本片段转换为队列中的audio(我将其作为base64编码数据获取),然后像这样提供它们: var src = Base64Audio.replace("data:audio/x-wav;base64,",""); var binAudio = new Buffer( src, 'base64'); res.write(binAudio); 所有的信息都被传输到客户端,但由于某种原因,浏览器(我正在Firefox 7.0.1中testing)正在播放它,并在第一个块之后停止。 这是结果/演示显示audio提前结束 ,这是在github 上运行的代码 。 为什么是这样? 这是因为x-wav数据在头部/元数据中是否具有像End或指定长度的元数据? 如果是这样的元数据是什么,是否有某种方式来编辑它,使浏览器成功连接接收到的块? 我知道Header的'Content-Length': Buffer.length但在这种情况下,我不知道整个stream将会持续多久。 任何人都可以提供build议 是否有可能编辑缓冲区发送之前,让浏览器连接他们正确?

如何结合寻找节点快递audiostream

我有一个小的播客饲料,我主持,后我终于把它连接到羽绒一切正常,直到我试图跳过前进/后退。 我终于意识到,寻求不是固有的pipe道stream的一部分。 我search了一下,我似乎无法find任何有用的东西。 用下面的代码,我将如何实现寻求? app.get('/stream/:id', function(req, res) { if (!req.params.id) { res.status(404); res.send("Not found"); } var filePath = path.join(Config.media, '**' , req.params.id); filePath = glob.sync(filePath)[0]; var stat = fs.statSync(filePath); res.writeHead(200, { 'Content-Type': 'audio/mpeg', 'Content-Length': stat.size, 'Accept-Ranges': 'bytes' }); var readStream = fs.createReadStream(filePath); readStream.pipe(res); });

使用node.js进行缓冲audio播放的algorithm/技术

我正在使用node.js从networking播放audiostream,如广播电台或mp3stream。 数据stream如下所示: 广播电台(mp3audio) – >我的node.js脚本 – > lame mp3解码器(node-lame) – > PCM输出到soundcard(节点声音)。 问题是,由于networking延迟,播放有时会中断。 所以我所做的就是将所有数据块缓冲到一个variables中。 一旦variables大小达到(1Mb),我开始从variables而不是直接播放声音。 解决了打破的播放。 我的问题是 – 我可能不需要等到缓冲区大小达到1Mb。 我确定有一个algorithm或一些计算来检测平均networking速度或延迟,并确定不间断播放的最佳缓冲区大小 。 当然,我可以想出一些草率的解决scheme,但我想知道是否有任何algorithm或技术,我想完成什么? 我search了一些关于DSP的帧大小的白皮书,但是来自社区的build议会很棒。

如何循环MP3?

如何循环MP3? 我用这个来播放MP3,但它只播放一次。 我想连续播放MP3。 /*jslint node: true, vars: true, maxerr: 50, indent: 4 */ (function (console, require, alarm) { "use strict"; var fs = require("fs"); var lame = require("lame"); var Speaker = require("speaker"); function start() { var stream = fs.createReadStream("sounds/alarm.mp3"); stream.pipe(new lame.Decoder()).pipe(new Speaker()); } alarm.start = start; }(global.console, require, exports)); 使用: 节点跛脚: https : //github.com/TooTallNate/node-lame 节点扬声器: […]

Node.js:Radio streaming Api

我正在一个项目中,我必须使Api的无线电stream,用户可以从他的移动应用程序而不是networking收听电台stream。 请让我知道是否有Node.js中的任何框架可以实时stream式传输我的audio文件到移动客户端。 我看看Binary.js,但我不确定它可以处理我的移动客户端。 任何人都请在此引导我。

转码和streamaudio – 如何发送内容范围标题

快速版本:当不知道身体长度时如何发送正确的Content-Range标题? 我有一个FLAC文件。 我想将其转码成MP3并立即将其stream式传输给用户。 到目前为止,我有这样的事情: function transcode(file) { var spawn = require('child_process').spawn var decode = spawn('flac', [ '–decode', '–stdout', file ]) var encode = spawn('lame', [ '-V0', '-', '-' ]) decode.stdout.pipe(encode.stdin) return encode } var express = require('express') var app = express() app.get('/somefile.mp3', function (req, res) { res.setHeader('Accept-Ranges', 'bytes') res.setHeader('Content-Range', 'bytes') res.setHeader('Content-Type', 'audio/mpeg') transcode(file).stdout.pipe(res) }) 这按预期工作,但它是“stream”,所以我不能跳过。 […]