2017-03-08 2 views
0

노드 +를 사용하여 브라우저에 stream.pipe(res) 기능을 사용하는 오디오 스트림을 표현하고 있습니다. 아티스트 이름이나 앨범 아트와 같이 스트리밍되는 음악에 대한 메타 데이터를 추가하고 싶습니다. 이 정보를 보내려면 응답 헤더를 사용합니까? 내가 어떻게 해?노드 - 오디오 스트림에 ID3 음악 메타 데이터 첨부

var url = 'https://www.youtube.com/watch?v='+videoId; 

var audio = ytdl(url, { 
    filter: 'audioonly' 
}); 

audio.on('response', function(data) { 

    ... 

    res.writeHead(206, { 
     'Content-Type': 'audio/mpeg', 
     'Content-Range': ..., 
     'Content-Length': ..., 
     'Content-Disposition': 'inline; filename="' + req.query.track + ' - ' + req.query.artist + '.mp3"', 
     'Accept-Ranges': 'bytes', 

     // Add data like this? 
     'Content-???': 'Artist=' + artist + ',Album=' + album 
    }); 
}); 

audio.pipe(res); 

오디오 소스에 node-ytdl-core 모듈을 사용하고 있습니다.

답변

2

뭔가 나는 당신의 아르가 헤더를 전송하기 때문에

res.writeHead(200, { 
    'Content-Type': 'audio/mpeg3', 
    'Transfer-Encoding': 'chuncked', 
    'icy-br': '##', 
    'ice-audio-info': 'bitrate=128;samplerate=22050', 
    'icy-genre': 'Alternative', 
    'icy-name': "Dj-Radio", 
    'icy-description': "A NodeJS mp3 audio streamer", 
    'icy-url': "http://localhost:8080", 
    'Cache-Control': "no-cache", 
    'Connection': 'Keep-Alive' 
}); 

을 사용하고 발견하고는 하나 개의 스트림에서 여러 곡을 스트리밍하는 경우에만 한 번 그렇게 할 수 당신은 시작과 메타 데이터를 시간 초과 할 각각의 일부에 대해 문제가 발생할 것입니다. 머리글은 하나만 보낼 수 있기 때문에 머리 대신 머리글이 아닌 다른 사람의 앞에 있어야합니다. 여기

내가 인터넷 라디오 (이 단정하지 미안 경우에만 코드)> https://github.com/Hobgoblin101/Dj-Radio

+0

내가 곧 – Hobgoblin101

+0

감사를 시도하는의 아이디어가 생각을 한 환매 특약, 내가 필요하지 않습니다 동일한 스트림의 데이터를 업데이트하는 경우 –

관련 문제