2011-03-11 11 views
2

HTML5 오디오 태그 용 오디오 파일을 서버에 올려 놓으려고 node.js 서버를 가져 오려고합니다. 현재 express staticProvider를 통해 오디오 파일을 참조하고 있습니다. 그러나이 경우 소리가 한 번 재생 된 다음 다시 재생되지 않습니다.Node.js 및 HTML5 오디오

검색 또는 반복과 함께 사운드가 제대로 작동하기 위해 수집 할 수있는 것부터 오디오 파일을 요청할 때 "Content-Range"헤더를 제공해야합니다. 익스프레스 staticProvider가 나를 위해이 작업을 수행하고 있는지 의심 스럽다. 따라서 사용자 정의 코드를 사용하여 파일을 처리해야 할 필요가있는 것처럼 보일 것이다. 불행히도 나는 node.js에 상당히 익숙하지 않으며 파일을 제공하는 것과 같은 것들은 여전히 ​​저를 넘어서는 것입니다. 오디오 파일에 적절한 메타 데이터를 제공하는 방법에 대한 조언을 누군가가 제공 할 수 있습니까? (그것이 어떤 좋은 사람을하지 않을 것이기 때문에! 제거 이전 서버 코드)

미안

[편집], 나는 일반적으로 질문이 광범위을 요구하지 않는,하지만 난으로 손해를보고 정말이야 어디서부터 시작해야 할까? 어떤 제안?

[솔루션]

그래서이 솔루션은 단지 업데이트 된 소프트웨어를 사용하는 것으로 보인다. 나는 내장 된 HTTP 미들웨어를 연결하는 것보다 익스프레스를 시도하고 있었다. 연결이 정적 인 파일 처리를 제대로하지 못했기 때문이다. 밖으로 나왔는데, 노드의 버전이 조금 더 오래 동안 나는 최신 버전의 문서를보고있었습니다. 내 연결 라이브러리를 업데이트하면 (난 그냥, 최신을 설치하는 NPM을 사용 궁금해하는 사람들을 위해), 다음이 아름답게 일 :

var connect = require('connect'); 
var server = connect.createServer(
    // If your server errors on this line, saying it doesn't know what 
    // "static" is you need to get the latest connect! 
    connect.static(__dirname + '/public') 
); 
server.listen(PORT); 

답변

2

는 정적 인 로직 (정적을 사용하여 기본 연결 서버에 의해 수행된다 미들웨어). 'Content-Range'헤더에 대한 코드가 있습니다 (here, 148 행 참조).이 헤더는 기본 클라이언트 (해당 경우 브라우저의 HTML5 구현)가 올바른 요청 헤더를 보낼 때만 설정됩니다.

Google 그룹의 this post이 도움이 될 수 있습니다. 주제는 약간 (비디오 스트리밍) 다르지만 문제의 핵심은 거의 같다고 생각합니다.

+0

나는 그 글을 읽고 그것에 근거 할 수있는 것을 결합 해왔다. 그래도 느린 진전이있었습니다. 정적 미들웨어를 가르쳐 주셔서 감사합니다! 나는 심지어 거기를 보려고 생각조차하지 않았다. 그것은 뒤돌아 보면 어리석은 것처럼 보인다. – Toji

+0

아하! 그리고 그 안에 해결책이 있습니다! node.js에 포함 된 연결 미들웨어는 오래되었으므로 지적한 Content-Range 코드가 없습니다. 최신 버전의 연결을 설치하여 작동시킬 수있었습니다! 고맙습니다! – Toji

+0

node.js와 같이 빠르게 변화하는 환경에서 개발의 저주/축복이 있습니다.) 나는 기쁜 마음으로 올바른 방향으로 여러분을 지적했습니다! – schaermu