Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Express.js发送音频文件?因此HTML音频播放器可以快速转发音频_Javascript_Node.js_Express_Http_Server - Fatal编程技术网

Javascript 如何使用Express.js发送音频文件?因此HTML音频播放器可以快速转发音频

Javascript 如何使用Express.js发送音频文件?因此HTML音频播放器可以快速转发音频,javascript,node.js,express,http,server,Javascript,Node.js,Express,Http,Server,注意:我使用youtube dl只是为了学习,而不是任何商业用途 从我的客户端,当我用我的请求歌曲在端口localhost:5000向我的服务器发出请求时,正如您可以从上面的代码中看到的,服务器向我发回一个音频文件 但我无法控制HTML音频播放器在音频长度上向前或向后。我认为问题在于我的服务器将歌曲发送到客户端的方式 const fs = require('fs'); const ytdl = require('ytdl-core'); const YouTube = require("

注意:我使用youtube dl只是为了学习,而不是任何商业用途

从我的客户端,当我用我的请求歌曲在端口localhost:5000向我的服务器发出请求时,正如您可以从上面的代码中看到的,服务器向我发回一个音频文件

但我无法控制HTML音频播放器在音频长度上向前或向后。我认为问题在于我的服务器将歌曲发送到客户端的方式

const fs = require('fs');
const ytdl = require('ytdl-core');
const YouTube = require("youtube-sr");

const initSearch = (song_name) => {
   return YouTube.search(song_name, { limit: 3 }) //returns a promise
}

const getAudio = async (req, res) => {
  const {name} = req.params;

  const [{id}] = await initSearch(name);

  res.set('content-type', 'audio/m4a'); //or webm
  res.set('accept-ranges', 'bytes');
  res.set('Content-Range', 'bytes');

  console.log('THE SONG ID IS',id);

  ytdl('http://www.youtube.com/watch?v='+id, {filter: 'audioonly'})
  .pipe(res);
}

module.exports = getAudio;