【问题标题】:How to implement post video functionality like in Facebook如何在 Facebook 中实现发布视频功能
【发布时间】:2014-09-01 15:52:47
【问题描述】:

我想在 facebook 中实现类似的功能,您可以在其中发布视频。因此,当您复制链接时,facebook 会创建某种快照,然后您将其发布。我正在谷歌搜索如何做到这一点,但不幸的是没有发现任何有用的东西。

我想知道是否有已经实现的插件或教程来执行此类操作。

我发现的唯一示例类似于以下使用标记的 jQuery 库。除此之外还有什么更优雅的吗?

marked.setOptions({
    gfm: true,
    pedantic: false,
    sanitize: true,
    highlight: null,
    urls: {
        youtube : function(text, url) {
            var cap;
            if((cap = /(youtu\.be\/|youtube\.com\/(watch\?(.*&)?v=|(embed|v)\/))([^\?&"'>]+)/.exec(url))) {
                return '<iframe width="420" height="315" src="https://www.youtube.com/embed/' + cap[5] + '" frameborder="0" allowfullscreen</iframe>';
            }
        },
        vimeo : function(text, url) {
            var cap;
            if((cap = /^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/.exec(url))) {
                return '<iframe src="https://player.vimeo.com/video/' + cap[5] +'" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';
            }
        },
        dailymotion : function(text, url) {
            var cap;
            if((cap = /^.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/.exec(url))) {
                return '<iframe frameborder="0" width="480" height="271" src="https://www.dailymotion.com/embed/video/' + cap[2] +'"></iframe>';
            }
        }
});

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    您应该解析页面的元标记。例如,如果您查看 youtube 页面的源代码,您会发现这样的标签,它们是已定义的标准。

    <meta property="og:site_name" content="YouTube">
      <meta property="og:url" content="http://www.youtube.com/watch?v=lB6a-iD6ZOY">
    <meta property="og:title" content="Sting - Fragile">
    <meta property="og:image" content="http://i.ytimg.com/vi/lB6a-iD6ZOY/maxresdefault.jpg">
    
      <meta property="og:description" content="Music video by Sting performing Fragile. YouTube view counts pre-VEVO: 1,794,143. (C) 1991 A&amp;M Records">
    
    <meta property="al:ios:app_store_id" content="544007664">
    <meta property="al:ios:app_name" content="YouTube">
      <meta property="al:ios:url" content="vnd.youtube://www.youtube.com/watch?v=lB6a-iD6ZOY&amp;feature=applinks">
    <meta property="al:android:url" content="http://www.youtube.com/watch?v=lB6a-iD6ZOY&amp;feature=applinks">
    <meta property="al:android:app_name" content="YouTube">
    <meta property="al:android:package" content="com.google.android.youtube">
    <meta property="al:web:url" content="http://www.youtube.com/watch?v=lB6a-iD6ZOY&amp;feature=applinks">
    
    <meta property="og:type" content="video">
        <meta property="og:video" content="http://www.youtube.com/v/lB6a-iD6ZOY?autohide=1&amp;version=3">
        <meta property="og:video:secure_url" content="https://www.youtube.com/v/lB6a-iD6ZOY?autohide=1&amp;version=3">
      <meta property="og:video:type" content="application/x-shockwave-flash">
      <meta property="og:video:width" content="853">
      <meta property="og:video:height" content="480">
    
        <meta property="og:video:tag" content="Sting">
        <meta property="og:video:tag" content="A&amp;M">
        <meta property="og:video:tag" content="Rock">
    

    您可以看到例如“og:image”元标记,它基本上指向视频的快照。因此,通过这种方式,您可以获得所有需要的信息。这几乎是您实现该功能所需了解的全部内容。

    【讨论】:

      【解决方案2】:

      我找到了这个...http://embedly.github.io/jquery-preview/demo/

      看起来很优雅的解决方案

      【讨论】:

        猜你喜欢
        • 2020-10-01
        • 2013-01-24
        • 1970-01-01
        • 2020-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多