用播放器替换音频/视频外壳?

时间:2011-01-13 作者:bueltge

当前状态:我正在将XML提要解析到前端和/或后端(管理UI),但没有解析到DB。在这些提要中,我放置了mp3和视频内容,目前仅为纯文本(没有链接,没有播放器)。

未来目标:我想改变上述行为,以便访问者可以观看/收听视频/音频内容。

我要搜索的是:内置(wp core)函数,它为提要中的音频和/或视频文件加载(wp core)播放器。我没有搜索的内容:替换当前文本(链接)的正则表达式/正则表达式。

解决方案应该独立于任何插件、主题或任何其他第三方代码。

Edit: Shortly ma question, maybe you understand my problem easier

有没有办法看到\\';附件\\';从RSS源?我想使用图像作为缩略图,并查看视频和音频附件的播放器。下面是一个包含附件的提要项示例。。。

<item>
    <title>New Ferrari FF video</title>

    <link>http://www.evo.co.uk/news/evonews/264793/ferrari_ff_new_pictures_and_video.html</link>
    <description>Ferrari releases a new, action-packed and undisguised video of its FF supercar. Video and new pictures here</description>
    <pubDate>Fri, 25 Feb 2011 15:04:58 +0000</pubDate>
    <enclosure url="http://www.evo.co.uk/images/front_picture_library_UK/dir_853/car_photo_426559_23.jpg" length="5420" type="image/jpeg"/>
</item>

3 个回复
SO网友:wyrfel

我相信您正在寻找的部分内容是在WP includes/media中定义的WP\\U嵌入类。php。它实现了一个用嵌入处理程序的输出自动替换URL的框架。恐怕您必须自己做更深入的研究(这显然是在2.9.0中引入的,所以文档可能仍然很薄)。

我怀疑Wordpress core是否会提供播放器解决方案,或者是否会提供播放器解决方案。它似乎为googlevideo URL安装了一个默认的嵌入处理程序。对于任何其他内容,您都必须编写并注册自己的嵌入处理程序,如果您想自己托管文件和播放器,您需要第三方播放器(插件)或依赖HTML5视频/音频标签。

啊。。。默认情况下,WP\\u嵌入类似乎是作为“the\\u content”过滤器的回调添加的,因此您不需要手动这样做。至少这里看起来是这样的

另一方面,如果您不是要替换指向媒体文件的URL,而是要替换完整的标记附件,如<video></video><embed></embed> 以此类推,然后您将不得不依赖regex或编写PHP-XML操作函数,因为我很确定Wordpress本身并没有提供这样的函数。

然而,您可以将其与上面的内容结合起来,通过regex删除这些标记中的所有内容以及标记本身,只留下url,从而使您的工作变得更简单。如果您在“the\\u content”过滤器挂钩上以高于10的优先级注册进行此操作的过滤器回调,则WP\\u嵌入过滤器回调将对这些URL作出反应,您可以使用WP\\u嵌入框架完成其余操作。

SO网友:Patriek

如果您试图替换XML数据,我认为最好的方法是使用XMLParser函数或简单的XML函数。

http://php.net/manual/en/book.xml.php

http://us2.php.net/manual/en/book.simplexml.php

我手头没有任何例子,但网上应该有很多。

回复评论Simplepie似乎能够在输出之前编辑内容,如下所示:http://simplepie.org/wiki/tutorial/how_to_edit_part_of_the_feed_before_parsing_it.

如果您的视频是来自使用oEmbed的主要视频流的url,您可以使用http://codex.wordpress.org/oEmbed 这是为了获得视频播放器并将其注入simplepie流,但这纯粹是我的猜测。这两个班我都没上过。

SO网友:Dougal Campbell

如果托管原始媒体的服务不支持OEmbed,那么您必须手动安装自己的播放器。没有内置功能可以让您轻松地使用媒体播放器。如果他们确实支持OEmbed,那么您所需要做的就是用内容过滤器将链接包装在[嵌入]短代码中,并可能添加过滤器以将OEmbed服务列入白名单。

结束

相关推荐

Displaying oEmbed errors?

有时,通过oEmbed嵌入项目是不可能的,例如,当YouTube视频已禁用嵌入时。The oEmbed service will return a 401 Unauthorized, 并且不会转换代码。有没有办法通知用户这一点?当前的工作流是非直观的(至少对我来说),我更喜欢在WordPress页面上,或者更好的是,在编辑器中显示一条消息,说明对象无法嵌入。