본문 출처
https://superuser.com/questions/975337/postfix-error-host-or-domain-name-not-found
수 도없는 구글링 끝에 찾아낸 답..
요약하면 iredmail 안의 postfix의 프로토콜 기본 설정이
ipv4와 ipv6를 같이 사용하게 되어 있음..
이걸 ipv4 전용으로 변경...
끗...
2019년 9월 25일 수요일
2019년 9월 6일 금요일
Youtube API 활용 팁
기획에서 Youtube 재생을 컨트롤 하는 것을 주문해서..
이것저것 해본거 정리..
요구 사항은..(나랑 의견이 안 맞긴 했지만...)
1. 동영상은 2개
2. 위에 동영상이 끝나면 자동으로 아래것이 재생
3. Youtube는 iframe 형식으로 사용
===============처리 방법=================
참조 문서 : https://developers.google.com/youtube/iframe_api_reference#Playback_controls
일단!!! 제일 중요한 부분!!! iframe에 들어있는 주소에 쿼리스트링으로 enablejsapi=1 을 붙인다!!! 이거 안 붙여서 1시간 날려먹음..
그리고.. api 호출해주고.. :
<script src="https://www.youtube.com/iframe_api">
이하 제어 스크립트.. 나머지는 주석 참고..
끗!
이것저것 해본거 정리..
요구 사항은..(나랑 의견이 안 맞긴 했지만...)
1. 동영상은 2개
2. 위에 동영상이 끝나면 자동으로 아래것이 재생
3. Youtube는 iframe 형식으로 사용
===============처리 방법=================
참조 문서 : https://developers.google.com/youtube/iframe_api_reference#Playback_controls
일단!!! 제일 중요한 부분!!! iframe에 들어있는 주소에 쿼리스트링으로 enablejsapi=1 을 붙인다!!! 이거 안 붙여서 1시간 날려먹음..
그리고.. api 호출해주고.. :
<script src="https://www.youtube.com/iframe_api">
이하 제어 스크립트.. 나머지는 주석 참고..
< script > var player1, player2; //동영상 2개에 대한 객체 선언... //onYouTubeIframeAPIReady 함수는 https://www.youtube.com/iframe_api 에서 자동으로 호출한다.. 별도의 호출 선언 없음.. function onYouTubeIframeAPIReady() { // iframe id 넣어줌 (player1) player1 = new YT.Player('player1', { events: { 'onStateChange': onPlayerStateChange } }); // iframe id 넣어줌 (player2) player2 = new YT.Player('player2', { events: { 'onStateChange': onPlayerStateChange } }); } function onPlayerStateChange(event) { //동영상 플레이어의 상태 변경시 호출됨... //console.log(event); //console.log(event.target.a.id) switch (event.data) { case 0: //재생 멈춤 상태값.. //record('video ended'); //플레이어가 1에서 이벤트가 발생했다면.. if (event.target.a.id == 'player1') { //player2의 상태가 시작되지 않았다면 if (player2.getPlayerState() != "-1") { player1.stopVideo(); //멈추고 player2.playVideo(); //시작... } } else { if (player1.getPlayerState() != "-1") { player2.stopVideo(); player1.playVideo(); } } break; case 1: //재생 시작 상태값.. //record('video playing from '+player.getCurrentTime()); break; case 2: //재생 일시정지 상태값.. //record('video paused at '+player.getCurrentTime()); break; } } function record(str) { console.log(str); } < /script> |
끗!
피드 구독하기:
글 (Atom)
-
진짜.. 이걸로.. 쌩쑈를 다 해서리.. 정리차 적어 놓음.. 0. 쇼핑몰 리뉴얼 중 주문 화면에서 우편 번호를 받으면 이게 산간 오지 지역이면 도선료를 추가로 부여해야 하는 상황 발생. 1. 쇼핑몰 솔루션을 자체 마이그레이션 하는 것이기에 알...
-
"Recordset.Get Rows() + Recordset.Move()" this is fastest way without using stored procedures. 프로시저 없을시엔 getrows + move 가 가장 성능이...
-
openMAINT를 사용하려고 하는데.. Synology의 OS가 일반 linux 계열이 아니어서.. 여러가지 난관이 발생함.. 일단.. Java야 뭐 어찌어찌 깔았지만.. 정작 다운받은 패키지에 sh 파일 안의 unzip이 먹지 않는 상황.. 구글링...
BE Band (비밴드) - 2024년 03월 02일 잠실새내 락앤롤욱스 공연
나의 10~20대를 보낸 잠실에서의 공연.. 오랜만에 가보니.. 여기가.. 마눌님과 자주 가던 영화관이었는데... 여긴 뭐가 있었는데... 란 추억도 떠올리며 기분좋게 감. 공연장은 좀 협소한 편이었고, 인천의 쥐똥나무 보다는 약간 크고... 인천 ...