私はモバイルデバイスで埋め込まれたYoutubeビデオのセグメントを再生することを含むウェブサイトに取り組んでいます。APIは、cueVideoByIdが、次のようなオブジェクト構文で行う限り、startSecondsパラメーターとendSecondsパラメーターの両方の定義をサポートすると述べています。
player.cueVideoById({videoId:String,
startSeconds:Number,
endSeconds:Number,
suggestedQuality:String}):Void
これはデスクトップブラウザではうまく機能しますが、AndroidとWindows Phone 8の両方で、ビデオが現在利用できないという標準のYouTubeメッセージが表示されます。cueVideoByIdを次のような引数構文に戻すと、すべてが機能します。
player.cueVideoById(videoId:String,
startSeconds:Number,
suggestedQuality:String):Void
...しかし、私はもうendSecondsにアクセスできません。誰かが原因を知っていますか、またはさらに良いことに、これの回避策を知っていますか?私が使用しているコードは、APIの基本的なGettingStartedの例に基づいています。
<!DOCTYPE html>
<html>
<body>
<!-- 1. The <iframe> (and video player) will replace this <div> tag. -->
<div id="player"></div>
<script>
// 2. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// 3. This function creates an <iframe> (and YouTube player)
// after the API code downloads.
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
// 4. The API will call this function when the video player is ready.
function onPlayerReady(event) {
event.target.cueVideoById("u1zgFlCw8Aw", 10, "medium"); // Works on mobile
/*
event.target.cueVideoById({ videoId: "u1zgFlCw8Aw", // Doesn't work on mobile
startSeconds: "10",
endSeconds: "15",
suggestedQuality: "medium"});
*/
event.target.playVideo();
}
</script>
</body>
</html>