2013-04-17 1 views
1

오디오/mpeg (mp3)의 메타 데이터를 가져 오는 데 문제가 있습니다.캐시가 비어있을 때 오디오 파일의 길이 속성 가져 오기와 관련된 문제

예를 들어 JS를 사용하여 오디오 파일의 재생 시간을 가져오고 캐시가 비어있는 경우 재생 시간 값은 "Infinity"(NaN)를 반환합니다.

이벤트/속성 preload 및 onloadedmetadata를 사용해 보았습니다. 항상 캐시가 비어있는 경우 오디오의 기간 및 기타 속성을 가져올 수 없습니다.

참고 : 캐시를 청소할 때만 (또는 방문자가 페이지를 처음 방문 할 때만) 문제가 발생합니다.

audioElement = new Audio('http://www.html5rocks.com/en/tutorials/audio/quick/test.mp3'); 
    console.log(audioElement); 
    audioElement.addEventListener("loadedmetadata", function(_event) { 
    var duration = audioElement.duration; 
    console.log(duration); 
    }); 
+0

기간이 메타 데이터에없는 경우, 어쩌면 당신은 좀 더 리스너를 추가 할 수 있고 사용할 수있을 때 운동. – robertc

+0

저는 현재 같은 문제가 있습니다. 해결 했습니까? –

답변

1

아마도 미디어 스트리밍 때문입니까?

https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement

시간이 더 미디어 데이터를 사용할 수없는 경우에만
초에서 미디어의 길이, 또는 제로를 두 번 읽기를 참조하십시오. 미디어 데이터를 사용할 수 있지만 길이를 알 수없는 경우이 값은 NaN입니다. 미디어가 스트리밍되고 미리 정의 된 길이가없는 경우 값은 Inf입니다.

0
audioElement = new Audio('http://www.html5rocks.com/en/tutorials/audio/quick/test.mp3'); 
    console.log(audioElement); 
    audioElement.addEventListener("loadedmetadata", function(_event) { 
    var duration = audioElement.duration; 
    console.log(duration); 
}); 
관련 문제