0

콘텐츠 스크립트를 사용하여 Chrome 확장 프로그램을 개발 중입니다. YouTube 동영상 플레이어가 삽입 된 페이지와 상호 작용하고 싶습니다. www-widgetapi-vfljlXsRD.js을 JavaScript 파일로 포함 시켰으며 YouTube 네임 스페이스가 확장 프로그램 샌드 박스 내에서 올바르게 초기화되었습니다.YouTube Player API : 기존 플레이어에 대한 참조 검색

기존 iFrame 플레이어에 대한 참조를 가져 오려고합니다. 그것을 달성하기 위해, 나는 노력이 : div#ytplayer 실제 플레이어를 내장 iframe이 있습니다

var ytplayer = new YT.Player('ytplayer'); 
ytplayer.pauseVideo(); 

.

TypeError: Object # has no method 'pauseVideo'

기존 플레이어에 대한 참조를 검색하는 올바른 방법은 무엇입니까 :

나는 방법이 존재하지 않는다고 말하고,이 오류를 받고 있어요?

+1

동영상을 일시 중지/재생하려면이 질문의 오른쪽에있는 첫 번째 링크 ('관련'헤더 아래)를 살펴보십시오. –

+0

실제로 비디오의 현재 시간을 가져오고 싶습니다. 도움 주셔서 감사합니다 –

답변

1

이전에 YouTube 플레이어 API를 사용하고 있었는데 제대로 작동했습니다. 오늘 나는 너와 같은 이슈가 있는데, 나는 내 코드에서 아무 것도 바꾸지 않았다. www-widgetapi-vfljlXsRD.js이 변경되어 버그가 발생했다는 것을 의미 할 수도 있습니다 ... 더 이상 도울 수 없습니다.

+0

문제가 해결되었지만 기존 플레이어에 대한 참조를 얻을 수 없습니다. 당신은 당신 편에서 그렇게 할 수 있습니까? –

1

좋아, 나는 기존 플레이어와 대화 할 방법을 찾았습니다. 나는 실제로 그것에 대한 작업 참조를 얻지 못했습니다.

{"event":"infoDelivery","info":{"currentTime":3.3950459957122803,"videoBytesLoaded":244,"videoLoadedFraction":0.24482703466872344},"id":1}

당신하여 관찰 할 수있다 :

는 는

내가 롭 (참조 YouTube iframe API: how do I control a iframe player that's already in the HTML?)의 놀라운 작품에서 영감을받은, 나는 유튜브 플레이어는 다음과 같이, 메인 창에 메시지를 전송하고 있음을 언급 재생중인 플레이어가 포함 된 창에서 "메시지"이벤트 window.addEventListener('message', function (event) {console.log(event.data)}, false);을 듣습니다.

infoDelivery 이벤트에는 현재 플레이어의 시간이 포함되어 있으며 비디오가 재생되는 동안 전송됩니다. 이 이벤트를 듣고 현재 플레이어 시간을 알 수 있습니다.

지금까지 적절한 솔루션을 찾지 못해이 순간에 작업을하게 될 것입니다.