0

我正在通过编程凤凰书,我得到了与YouTube视频播放器错误。编程凤凰城YouTube视频错误 - 视频不会播放

这是我的web/static/js/player.js文件:

let Player = { 
    player: null, 

    init(domId, playerId, onReady){ 
    window.onYouTubeIframeAPIReady =() => { 
     this.onIframeReady(domId, playerId, onReady) 
    } 
    let youtubeScriptTag = document.createElement("script") 
    youtubeScriptTag.src = "//www.youtube.com/iframe_api" 
    document.head.appendChild(youtubeScriptTag) 
    }, 

    onIframeReady(domId, playerId, onReady){ 
    this.player = new YT.Player(domId, { 
     height: "360", 
     width: "420", 
     videoId: playerId, 
     events: { 
     "onReady": (event => onReady(event)), 
     "onStateChange": (event => this.onPlayerStateChange(event)) 
     } 
    }) 
    }, 

    onPlayerStateChange(event){ }, 
    getCurrentTime(){ return Math.floor(this.player.getCurrentTime() * 1000) }, 
    seekTo(millsec){ return this.player.seekTo(millsec/1000) } 
} 
export default Player 

,我将其导入像这样web/static/js/app.js: “玩家准备”

import Player from "./player" 
let video = document.getElementById("video") 

if(video) { 
    Player.init(video.id, video.getAttribute("data-player-id"),() => { 
    console.log("player ready!") 
    }) 
} 

我看到了消息在JavaScript控制台中;但是,视频不会播放。他们给我看起来像这样的错误:

enter image description here

我怎样才能解决这个问题,使视频将发挥?

回答

1

错误实际上是从我的手表观点 - 我忘了在正则表达式中的问号<id>之前所以player_id没有被正确设置:

defmodule Rumbl.WatchView do 
    use Rumbl.Web, :view 

    def player_id(video) do 
    ~r{^.*(?:youtu\.be/|\w+/|v=)(?<id>[^#&?]*)} 
    |> Regex.named_captures(video.url) 
    |> get_in(["id"]) 
    end 
end