2013-03-11 1 views
3

JSON을 사용하여 Youtube API를 통해 반환되는 각 비디오의 재생 시간을 검색하고 인쇄하려고합니다. 기간은 밖으로 같이 퍼팅을 할 필요가 :JSON을 사용하여 Youtube API에서 비디오 재생 시간을 반환하십시오.

9 : 34min 아니라 초

에서 그러나 나는 다음에 무엇을 알아낼 수 없습니다. 현재 다음 코드를 사용 중입니다 :

function showMyVideos2(data) { 
var feed = data.feed; 
var entries = feed.entry || []; 
var html = ['<ul class="videos">']; 
for (var i = 0; i < entries.length; i++) { 
var entry = entries[i]; 
var title = entry.title.$t.substr(0, 20); 
var thumbnailUrl = entries[i].media$group.media$thumbnail[0].url; 
var playerUrl = entries[i].media$group.media$content[0].url; 
html.push('<li>', 
      '<a href="', playerUrl, '" rel="vidbox 686 315"><img src="', 
      thumbnailUrl, '" width="130" height="97"/></a>', '<span class="titlec"><a  href="', playerUrl, '" rel="vidbox 686 315">', title, '... </a></span></li>'); 
} 
html.push('</ul><br style="clear: left;"/>'); 
document.getElementById('videos2').innerHTML = html.join(''); 
if (entries.length > 0) { 
loadVideo(entries[0].media$group.media$content[0].url, false); 
} 
} 

답변

1

YouTube API는 기간 (초) 만 출력합니다. 하지만 초를 원하는 시간 형식으로 변환하는 함수를 만들 수 있습니다.

function formatSecondsAsTime(secs) { 
    var hr = Math.floor(secs/3600); 
    var min = Math.floor((secs - (hr * 3600))/60); 
    var sec = Math.floor(secs - (hr * 3600) - (min * 60)); 

    if (hr < 10) { 
     hr = "0" + hr; 
    } 
    if (min < 10) { 
     min = "0" + min; 
    } 
    if (sec < 10) { 
     sec = "0" + sec; 
    } 
    if (hr) { 
     hr = "00"; 
    } 

    return hr + ':' + min + ':' + sec; 
} 

것과 마찬가지로 함수에 시간 필드를 전달합니다

var videoTime = formatSecondsAsTime(entries[i].media$group.media$content[0].duration); 
+1

그;의 큰 sbhomra을, 정말 고마워요 당신의 도움을! –

+0

기꺼이 도와 드리겠습니다! – sbhomra