【问题标题】:Dynamically update a youtube playlist on a website动态更新网站上的 youtube 播放列表
【发布时间】:2019-07-07 12:19:00
【问题描述】:

好的,我正在尝试开发一个包含 youtube 播放列表的网站。稍后,每个访问该网站的人(在我的本地网络中)都应该可以将歌曲添加到该播放列表中。我将为此使用 youtube-api 和可能的 php 或 python。

现在我通过<iframe> 标签添加了播放列表,但偶然发现了一个大问题。如果我现在向这个播放列表添加更多歌曲(通过 youtube 本身),它们当然只会在我重新加载整个网站时添加到我网站上的播放列表中。例如,如果我只是用<iframe> 重新加载 div,问题是播放列表从第一首歌曲重新开始。

有没有一种方法可以动态更新我网站上的播放列表?这样播放列表不会从头开始重新开始,当前播放仍然存在,新添加的歌曲实际上是“现场”添加到播放列表中的?

如果有帮助,请点击<iframe> 标签:

<iframe id="playlist" src="https://www.youtube.com/embed/videoseries?list=PLmdXGEzOwfzb0fq7S2iP-t4i7x19R1ZN2"
        frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
        allowfullscreen>
</iframe>

【问题讨论】:

    标签: iframe youtube youtube-api playlist


    【解决方案1】:

    我建议的一种方式是:

    • (在更新包含iframe的div之前),您需要同时获取当前播放视频和播放视频的当前时间。1

    (将视频添加到播放列表并获得我在前面几行中提到的值后),更新 div 元素(通过修改 iframesrc 值) .

    一个例子可能是这样的:

    • 您有一个播放列表,其 ID 为:PLmdXGEzOwfzb0fq7S2iP-t4i7x19R1ZN2
    • 当前播放视频为:51iquRYKPbs
    • 当您右键单击正在播放的视频51iquRYKPbs 时,您将获得Copy URL video at current time 选项。
    • 选择Copy URL video at current time 选项后,您将获得如下网址:

    youtu.be/51iquRYKPbs?list=PLmdXGEzOwfzb0fq7S2iP-t4i7x19R1ZN2&t=80

    检查突出显示的值 - 您将需要它们来重新加载您的 iframe

    您当前的 iframe src 值如下:

    https://www.youtube.com/embed/videoseries?list=PLmdXGEzOwfzb0fq7S2iP-t4i7x19R1ZN2
    

    (还没有修改).

    要使用应用的更改重新加载 iframe,请按如下方式设置 iframe src:

    https://www.youtube.com/embed/51iquRYKPbs?list=PLZCHH_4VqpRhMW1K9I1hbgBRmmlWdyK3k&autoplay=1&start=80
    

    (一旦您更改了 iframe 的 src 值,它将重新加载所做的更改并在指定时间内继续播放视频)

    src 值所做的更改解释如下:

    • 设置正在播放的视频的 videoId 值(在完成重新加载之前)
    • 设置视频在指定时间继续播放的起始值。
    • 在指定时间播放视频需要autoplay=1

    1 关于如何获取当前正在播放的视频和正在播放的视频的当前时间是一个全新的问题,这将取决于您使用哪种语言处理您网站中的所有 YouTube 内容 - (因为您在问题中提到您将使用 php 或 python).

    【讨论】:

    • 所以如果我理解正确的话.. 这样每次在播放列表中添加一首新歌曲时,当前播放的歌曲会暂停大约 1 到 2 秒,因为 iframe 获得了一个新的 url,对吗?我认为这是最后可能的解决方案,但前提是它根本不可能无缝地做到这一点
    • 我刚刚发现它存在 youtube-iframe-api 的“YT.PlayerState.ENDED”属性。这与您的建议相结合可能确实有效。我试一试。来源:link
    • @Adrian 关于我的第一条评论,你误会了-对不起我的英语不好-。我的意思是:once you added the video in your playlist - directly in YouTube,您需要重新加载 iframe - 通过更改 src 值 (这是因为带有播放列表的 iframe 将加载已添加到播放列表中的视频 - iframe 不会搜索更新据我所知,播放列表,但我可能错了).
    • 关于您的第二条评论:通过使用 YouTube Player API,您可以将视频添加到播放列表中,但它不会真正将其添加到播放列表中 (就像您选择视频并选择“添加到播放列表”选项) - 这些更改将在本地可用。如果您可以在问题中提供您正在使用的代码,我可能会为您提供进一步的帮助。祝你好运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 2015-11-25
    相关资源
    最近更新 更多