0
我正在使用MEAN堆棧創建音樂流媒體服務。到目前爲止,我已經編寫了使用GridFS將MP3文件上傳到我的MongoDB數據庫的代碼,並且我還可以將該文件下載到我的網站的根文件夾中。使用npm揚聲器作爲GridFS下載流的輸出 - NodeJS
但是,我不希望下載流寫入文件,而是流式傳輸到播放器/揚聲器,以便文件不在用戶系統中,只需從服務器流式傳輸。
我一直在看故宮揚聲器模塊,並試圖如下實現它:
var assert = require('assert');
var fs = require('fs');
var mongodb = require('mongodb');
var Speaker = require('speaker');
var uri = 'mongodb://localhost:27017/test';
var speaker = new Speaker({
channels: 2, // 2 channels
bitDepth: 16, // 16-bit samples
sampleRate: 44100 // 44,100 Hz sample rate
});
mongodb.MongoClient.connect(uri, function(error, db) {
assert.ifError(error);
var bucket = new mongodb.GridFSBucket(db, {
chunkSizeBytes: 1024,
bucketName: 'songs'
});
bucket.openDownloadStreamByName('testmp3.mp3').pipe(speaker)
});
我不知道如果我需要執行一個緩衝區來做到這一點。據我所知,npm演講者是一個可寫的流,所以我應該能夠接管它。
上述解決方案在退出「退出代碼132(由信號4:SIGILL中斷)」過程中出現錯誤之前會產生約30秒的靜態噪音。
我是新來的NodeJS等,所以任何幫助將非常感激。
感謝