Pracuję nad witryną, która ma mnóstwo osadzonych filmów z YouTube, klient chce wyświetlać wyskakujące okienko, gdy wideo przestaje się odtwarzać.
Spojrzałem na interfejs API YouTube i wydaje się, że istnieje sposób na wykrycie zakończenia filmu:
http://code.google.com/apis/youtube/js_api_reference.html
ale nie mogę osadzić filmów, o których wspomnieli na tej stronie, ponieważ wszystkie filmy są już w witrynie (tysiące, które zostały dodane ręcznie przez wklejenie kodu osadzania).
Czy istnieje sposób na wykrycie zakończenia tych filmów bez zmiany któregokolwiek z istniejących filmów (przy użyciu JavaScript)?
javascript
flash
api
actionscript
youtube
TK123
źródło
źródło
enablejsapi=1
. Jeśli znajdują się w bazie danych, zmianasrc
atrybutu powinna być dość łatwa . Możesz potrzebować wyrażenia regularnego, jeśli są one statycznie wstawiane do plików HTML.Odpowiedzi:
Można to zrobić za pomocą interfejsu API odtwarzacza YouTube:
http://jsfiddle.net/7Gznb/
Przykład pracy:
<div id="player"></div> <script src="http://www.youtube.com/player_api"></script> <script> // create youtube player var player; function onYouTubePlayerAPIReady() { player = new YT.Player('player', { width: '640', height: '390', videoId: '0Bmhjf0rKe8', events: { onReady: onPlayerReady, onStateChange: onPlayerStateChange } }); } // autoplay video function onPlayerReady(event) { event.target.playVideo(); } // when video ends function onPlayerStateChange(event) { if(event.data === 0) { alert('done'); } } </script>
źródło
Może zechcesz umieścić na wszystkich stronach skrypt, który wykonuje następujące czynności ... 1. znajdź element iframe youtube: wyszukując go według szerokości i wysokości według tytułu lub znajdując www.youtube.com w jego źródle. Możesz to zrobić ... - przechodząc przez pętlę window.frames przez pętlę for-in, a następnie filtrując według właściwości
wstrzyknij jscript do elementu iframe bieżącej strony, dodając funkcję onYoutubePlayerReady, która musi zawierać http://shazwazza.com/post/Injecting-JavaScript-into-other-frames.aspx
Dodaj detektory zdarzeń itp.
Mam nadzieję że to pomoże
źródło