gpt4 book ai didi

Javascript:浏览器中的 Airplay

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:50:31 25 4
gpt4 key购买 nike

有没有办法在浏览器中使用 JavaScript 将图像、视频和音频发送到 AirPlay 服务器?

最佳答案

这在 JavaScript 中是不可能实现的。但是,您可以使用 NPAPI 从浏览器运行它插件(非常痛苦)。

如果您可以运行本地服务器,那么有几个 node.js 模块可以让这一切变得容易得多。以下示例将流式传输发布到附近 AirPlay 设备的任何音频文件。

  • 它需要 airtunes来自 NPM 的模块,由我维护。
  • 它使用 FFmpeg对文件进行转码。

你可以用它来测试:

curl -X POST --data-binary @sample.mp3 http://localhost:8080/audio

它假定 FFmpeg 位于/usr/local/bin/ffmpeg,并且 AirPlay 设备在 localhost:5000 上可用(您可以尝试使用 Airfoil Speakers)。

var airtunes = require('airtunes'),
express = require('express'),
app = express(),
device = airtunes.add('localhost'),
spawn = require('child_process').spawn;

app.post('/audio', function(req, res) {
// use ffmpeg to reencode data on the fly
var ffmpeg = spawn('/usr/local/bin/ffmpeg', [
'-i', 'pipe:0', // Read from stdin
'-f', 's16le', // PCM 16bits, little-endian
'-ar', '44100', // Sampling rate
'-ac', 2, // Stereo
'pipe:1' // Output to stdout
]);

// pipe data to AirTunes
ffmpeg.stdout.pipe(airtunes, { end: false });

// detect if ffmpeg was not spawned correctly
ffmpeg.stderr.setEncoding('utf8');
ffmpeg.stderr.on('data', function(data) {
if(/^execvp\(\)/.test(data)) {
console.log('failed to start ' + argv.ffmpeg);
process.exit(1);
}
});

req.pipe(ffmpeg.stdin);

req.on('end', function() {
res.end();
});
});

device.on('status', function(status) {
console.log('status: ' + status);
});

console.log('listening on port 8080');
app.listen(8080);

关于Javascript:浏览器中的 Airplay,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8058524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com