【Youtube Player API】 삽입할 동영상을 동적으로 변경
동작
이런 느낌입니다.
텍스트 상자에 url을 입력할 때마다 내장된 Youtube 동영상이 변경됩니다.
코드
// ここがiframeに置き換わる
<div id="ytplayer"></div>
<input type="text" id="url" style="width: 600px">
<script>
// IFrame API Playerを読み込む
const tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
const firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// APIコードが読み込まれた後に、YouTube Playerを作成する
let player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('ytplayer', { // playerはiframeに置き換えるdivタグのid
height: '360', // プレイヤーの高さ
width: '640', // プレイヤーの幅
});
}
코드의 전반부의, 플레이어를 작성할 때까지는 공식 샘플 페이지 과 거의 같다.
다른 점은 플레이어 개체를 만들 때 동영상 ID를 지정하지 않고 나중에 큐 함수에서 로드하는 것입니다.
const url = document.getElementById('url');
let videoId;
// url入力フォームの入力されたイベントを監視
url.addEventListener('input', () => {
// urlのv=以降が動画id
videoId = url.value.split('v=')[1];
// 正しいurlの形式だったとき
if (videoId) {
// &=クエリパラーメターがついていることがあるので取り除く
const ampersandPosition = videoId.indexOf('&');
if(ampersandPosition != -1) {
videoId = videoId.substring(0, ampersandPosition);
}
}
// 指定さらた動画IDのサムネイルを読み込み、動画を再生する準備をする。
player.cueVideoById({videoId: videoId});
});
</script>
URL로부터 동영상 ID를 취득하는 방법은, 이 사이트를 참고로 했습니다.
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 3452546 / HO W-E-I-T-T-E-Tsube-U에서 어이 de f-ro-m-rl? rq=1
input
이벤트는 value
요소가 변경될 때마다 발생하므로 텍스트가 변경될 때마다 URL에서 동영상 ID를 가져옵니다.
획득한 동영상 ID를 cueVideoById
함수에 전달하여 플레이어가 동영상을 로드할 수 있습니다.
또한 loadVideoById
함수는 동영상 ID를 전달하여 즉시 동영상을 재생할 수 있습니다.
덧붙여서 cueVideoByUrl
이나 loadVideoByUrl
등 동영상 ID 대신에 URL을 건네줄 수 있는 함수도 있습니다만, URL의 형식이 http://www.youtube.com/v/VIDEO_ID?version=3
에 완전하게 적합하고 있을 필요가 있습니다. 1
따라서 양식에서 입력하기에는 조금 사용하기 어렵습니다 ...
기타 예
라디오 버튼에서 로드
<div id="player"></div><br>
好きなVtuberは?
<input type="radio" name="video_id" value="Lv46-MIAS8o">ギバラ
<input type="radio" name="video_id" value="EtKEC-4dW18" >月ノ美兎
<input type="radio" name="video_id" value="5YOeKW0OfPE" >本間ひまわり
<script>
const tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
const firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
let player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '360',
width: '640',
});
}
const video_ids = document.getElementsByName('video_id');
video_ids.forEach(function(video_id) {
video_id.addEventListener('click', function() {
const videoId = document.querySelector('input:checked[name=video_id]').value;
if (videoId){
player.loadVideoById({videoId: videoId});
}
})
});
</script>
일반 URL 형식은 `htps //w w. 요츠베. 이 m/와 tch? v = ゔ ぃ에서 _ D ↩
Reference
이 문제에 관하여(【Youtube Player API】 삽입할 동영상을 동적으로 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/azukiazusa/items/2dc6407665785127cccc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// ここがiframeに置き換わる
<div id="ytplayer"></div>
<input type="text" id="url" style="width: 600px">
<script>
// IFrame API Playerを読み込む
const tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
const firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// APIコードが読み込まれた後に、YouTube Playerを作成する
let player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('ytplayer', { // playerはiframeに置き換えるdivタグのid
height: '360', // プレイヤーの高さ
width: '640', // プレイヤーの幅
});
}
코드의 전반부의, 플레이어를 작성할 때까지는 공식 샘플 페이지 과 거의 같다.
다른 점은 플레이어 개체를 만들 때 동영상 ID를 지정하지 않고 나중에 큐 함수에서 로드하는 것입니다.
const url = document.getElementById('url');
let videoId;
// url入力フォームの入力されたイベントを監視
url.addEventListener('input', () => {
// urlのv=以降が動画id
videoId = url.value.split('v=')[1];
// 正しいurlの形式だったとき
if (videoId) {
// &=クエリパラーメターがついていることがあるので取り除く
const ampersandPosition = videoId.indexOf('&');
if(ampersandPosition != -1) {
videoId = videoId.substring(0, ampersandPosition);
}
}
// 指定さらた動画IDのサムネイルを読み込み、動画を再生する準備をする。
player.cueVideoById({videoId: videoId});
});
</script>
URL로부터 동영상 ID를 취득하는 방법은, 이 사이트를 참고로 했습니다.
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 3452546 / HO W-E-I-T-T-E-Tsube-U에서 어이 de f-ro-m-rl? rq=1
input
이벤트는 value
요소가 변경될 때마다 발생하므로 텍스트가 변경될 때마다 URL에서 동영상 ID를 가져옵니다.획득한 동영상 ID를
cueVideoById
함수에 전달하여 플레이어가 동영상을 로드할 수 있습니다.또한
loadVideoById
함수는 동영상 ID를 전달하여 즉시 동영상을 재생할 수 있습니다.덧붙여서
cueVideoByUrl
이나 loadVideoByUrl
등 동영상 ID 대신에 URL을 건네줄 수 있는 함수도 있습니다만, URL의 형식이 http://www.youtube.com/v/VIDEO_ID?version=3
에 완전하게 적합하고 있을 필요가 있습니다. 1따라서 양식에서 입력하기에는 조금 사용하기 어렵습니다 ...
기타 예
라디오 버튼에서 로드
<div id="player"></div><br>
好きなVtuberは?
<input type="radio" name="video_id" value="Lv46-MIAS8o">ギバラ
<input type="radio" name="video_id" value="EtKEC-4dW18" >月ノ美兎
<input type="radio" name="video_id" value="5YOeKW0OfPE" >本間ひまわり
<script>
const tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
const firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
let player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '360',
width: '640',
});
}
const video_ids = document.getElementsByName('video_id');
video_ids.forEach(function(video_id) {
video_id.addEventListener('click', function() {
const videoId = document.querySelector('input:checked[name=video_id]').value;
if (videoId){
player.loadVideoById({videoId: videoId});
}
})
});
</script>
일반 URL 형식은 `htps //w w. 요츠베. 이 m/와 tch? v = ゔ ぃ에서 _ D ↩
Reference
이 문제에 관하여(【Youtube Player API】 삽입할 동영상을 동적으로 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/azukiazusa/items/2dc6407665785127cccc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<div id="player"></div><br>
好きなVtuberは?
<input type="radio" name="video_id" value="Lv46-MIAS8o">ギバラ
<input type="radio" name="video_id" value="EtKEC-4dW18" >月ノ美兎
<input type="radio" name="video_id" value="5YOeKW0OfPE" >本間ひまわり
<script>
const tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
const firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
let player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '360',
width: '640',
});
}
const video_ids = document.getElementsByName('video_id');
video_ids.forEach(function(video_id) {
video_id.addEventListener('click', function() {
const videoId = document.querySelector('input:checked[name=video_id]').value;
if (videoId){
player.loadVideoById({videoId: videoId});
}
})
});
</script>
Reference
이 문제에 관하여(【Youtube Player API】 삽입할 동영상을 동적으로 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/azukiazusa/items/2dc6407665785127cccc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)