完成后将视频发布重定向至下一篇发布

时间:2012-03-27 作者:Pollux Khafra

我想让视频帖子在结束后重定向到其类别中的下一个视频帖子。我使用youtube视频和直接上传的视频,这两种视频我都知道如何以秒为单位计算持续时间。我如何利用它们来实现我的目标?

1 个回复
最合适的回答,由SO网友:kaiser 整理而成

注意:你所要求的是一件非常复杂的事情:

WP内部数据完成后加载下一篇文章,使用某些第三方播放器播放,在YouTube播放器(javascript或ActionScript)完成后加载下一篇文章。问题不在于重定向,而在于如何知道;何时加载下一个帖子。

实际上(/imho)应该是ajax加载;替换当前职位

YouTube API

您可以通过简单的javascript监听器检查视频是否已完成

player.getPlayerState()
可用返回值:

-1 // unstarted
0 // ended
1 // playing
2 // paused
3 // buffering
5 // video cued
<支持>Link to Google-YouTubeAPI function here

作为一个简单的开始:您需要a)有一个监听器,在播放器状态发生变化时捕获它;b)激发ajax调用。

ajax调用是一个简单的wordpress默认调用,用于重新加载播放器的父div(例如)的内容。只需搜索 如果您不知道WP如何处理ajax请求,请在页面此处存档。

// Example for the listener
// player is the var that holds your player - you\'ll need to set it
jQuery( player ) .on(
     \'onStateChange\'
    ,function( ev )
     {
        if ( 0 === ev )
        {
            // Perform the ajax next post load here
        }
     }
);
内部(您个人托管的)视频是真正的问题。您需要一个与YouTube播放器相同的播放器:可以在视频播放完成时检索状态更改。这在很大程度上取决于球员,目前我没有推荐。

你的机会

有»无铬播放器的JavaScript API«。YouTube API引用:

如果应用程序使用的是无铬播放器,请使用以下URL在应用程序中加载播放器,并在播放器中启用JavaScript API处理程序。然后,您可以使用JavaScript构建自己的自定义播放器控件:

A last note from YouTube.

要测试这些调用中的任何一个,您必须让您的文件在Web服务器上运行,因为Flash player限制本地文件和internet之间的调用。

结束

相关推荐

致命错误:在我的ajaxPage中对非对象调用成员函数Query()

我正在创建一个新插件,我遇到了这个错误致命的错误:在ajax页面中的非对象上调用成员函数query()。如何解决此错误。这是我的代码:if (isset($_REQUEST[\'ckballvalue\'])) { $allvideos=$_REQUEST[\'ckballvalue\']; $now = date(\"Y-m-d H:i:s\", time()); global $wpdb; $insert_video =$wpdb->que