web-dev-qa-db-ja.com

Youtube-カスタム再生アイコン

Youtube埋め込みビデオ再生アイコンを変更できますか?私はこの投稿を見つけました: 埋め込まれたYouTubeビデオの再生アイコンを変更できますか? しかし、このボタンは元の再生アイコンの上にあるため、透明なものを使用すると、元の再生アイコンが表示されます。

ご協力ありがとう御座います。

8
user3573535

実際のボタンは変更できないと思いますが、回避できます。

  1. プレイヤーを隠す
  2. 説明されているようにサムネイルを取得します ここ 、それをプレーヤーの同じ位置とサイズでページに配置します
  3. サムネイルの上に独自の再生アイコンを置く
  4. 再生アイコンがクリックされたら、サムネイルと再生アイコンを非表示にし、プレーヤーを表示し、リンクのようにYouTube APIを使用して動画を開始します

フィドル

//youtube script
var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

var player;

onYouTubeIframeAPIReady = function () {
    player = new YT.Player('player', {
        height: '244',
        width: '434',
        videoId: 'AkyQgpqRyBY',  // youtube video id
        playerVars: {
            'autoplay': 0,
            'rel': 0,
            'showinfo': 0
        },
        events: {
            'onStateChange': onPlayerStateChange
        }
    });
}

var p = document.getElementById ("player");
$(p).hide();

var t = document.getElementById ("thumbnail");
t.src = "http://img.youtube.com/vi/AkyQgpqRyBY/0.jpg";

onPlayerStateChange = function (event) {
    if (event.data == YT.PlayerState.ENDED) {
        $('.start-video').fadeIn('normal');
    }
}

$(document).on('click', '.start-video', function () {
    $(this).hide();
    $("#player").show();
    $("#thumbnail_container").hide();
    player.playVideo();
});
.start-video {
    position: absolute;
    top: 80px;
    padding: 12px;
    left: 174px;
    opacity: .3;
    
    cursor: pointer;
    
    transition: all 0.3s;
}

.start-video:hover
{
    opacity: 1;
    -webkit-filter: brightness (1);
}

div.thumbnail_container
{
    width: 434px;
    height: 244px;
    overflow: hidden;
    background-color: #000;
}

img.thumbnail
{
    margin-top: -50px;
    opacity: 0.5;
}
<div id="player"></div>
<div id="thumbnail_container" class="thumbnail_container">
    <img class="thumbnail" id="thumbnail" />
</div>
<a class="start-video"><img width="64" src="http://image.flaticon.com/icons/png/512/0/375.png" style="filter: invert(100%); -webkit-filter: invert(100%);"></a>
17
Tom Doodler