【问题标题】:Play Youtube Videos just by Passing Video URL只需传递视频 URL 即可播放 Youtube 视频
【发布时间】:2014-06-16 15:33:54
【问题描述】:

我一直在网上搜索,但没有按我的意图工作。我想要的是我有一个文本字段,用户可以在其中传递 youtube 视频的 URL(在后端),然后在前端我希望显示该视频以使用该 URL。关键是它不会显示视频。当我使用 iFrame 时它可以工作,但它需要像这样嵌入的 url

<iframe width="100%" height="100%" src="http://www.youtube.com/embed/vM89zeKimOY" frameborder="0" allowfullscreen></iframe>

它工作正常,但正如您所见,该 url 不是您从 url 栏中复制/粘贴的一般 url。

视频的网址是这样的:

https://www.youtube.com/watch?v=vM89zeKimOY

所以我想要的是这样的:

<iframe width="100%" height="100%" src="https://www.youtube.com/watch?v=vM89zeKimOY" frameborder="0" allowfullscreen></iframe>

我不知道是否有一个插件,您可以在其中粘贴 url 并播放,或者我缺少什么,但如果提供线索或任何帮助将不胜感激。

【问题讨论】:

  • 仔细看,你会发现嵌入的链接可以很容易地连接起来。只需在 v=? 之后取代码?并将其放置在嵌入式链接模板中:https://www.youtube.com/embed/ + THECODE
  • @kikyalex 我该怎么做?

标签: php jquery html youtube html5-video


【解决方案1】:

使用 jquery 你可以简单地实现它。

HTML

<input id="TextBoxURL" />
    <br />
    <div id="iframe">        
    </div>

脚本

<script type="text/javascript">
        $(document).ready(function () {

            $('#TextBoxURL').change(function () {
                var youTubeUri = $('#TextBoxURL').val();
                var youTubeVideoId = get_youtubeId(youTubeUri);
                loadYouTubeVideo(youTubeVideoId);
            }); 
        });

        function get_youtubeId(url) {
            var regExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/;
            var match = url.match(regExp);
            if (match && match[2].length == 11) {
                return match[2];
            } else {
                //error
            }
        }

        function loadYouTubeVideo(id){
            $('#iframe').append("<iframe width='560' height='315' src='//www.youtube.com/embed/"+id+"' frameborder='0' allowfullscreen></iframe>");
        }
    </script>

我没有在此处包含验证部分。

干杯。快乐编码..!!!

【讨论】:

  • 感谢您的代码Shana,我想知道如何将这段代码编写为动态的,就像我从数据库中读取变量然后显示它一样,但前提是设置了变量,如果没有然后设置在视频的位置以显示图像。 ???
【解决方案2】:
var NormalLink = "https://www.youtube.com/watch?v=vM89zeKimOY";
var theCode = NormalLink.substring(NormalLink.indexOf('?v=')+3);
var embedded = 'https://www.youtube.com/embed/'+theCode;       

FiddleLink:http://jsfiddle.net/swm7v/2/

【讨论】:

  • 非常感谢您的回复。可以用php写吗?
  • 只需将 javascript 变量替换为 php 变量。 &lt;?php$NormalLink = "https://www.youtube.com/watch?v=vM89zeKimOY";$theCode = $NormalLink.substr(strpos($NormalLink,('?v='))+3);$embedded = 'https://www.youtube.com/embed/'+$theCode; ?&gt;
猜你喜欢
  • 2021-01-07
  • 2013-11-10
  • 2015-10-22
  • 2013-03-02
  • 2014-05-01
  • 1970-01-01
  • 2012-05-20
  • 2011-05-29
  • 2012-08-09
相关资源
最近更新 更多