欢迎各位兄弟 发布技术文章
这里的技术是共享的
常常有经典的视频通过优酷分享链接发布到网站上,但外链优酷视频的广告实在是太闹心了,一般都是30秒广告。
屏蔽外链优酷视频的广告势在必行,其方法有三个(PS:似乎方法一二都不太管用了,如果你也有这样的烦恼请直接用方法三):
只需要在视频代码中插入:allownetworking="internal" 这段代码即可,同时要保持这个参数值是这样:allowScriptAccess="sameDomain"。
首先获取你要外链的视频的html代码,例如:http://v.youku.com/v_show/id_XMzU2MTE5ODI4.html
代码如下:
<embed src="http://player.youku.com/player.php/sid/XMzU2MTE5ODI4/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" allowFullscreen="true" type="application/x-shockwave-flash"></embed>
加上这段参数后:
<embed src="http://player.youku.com/player.php/sid/XMzU2MTE5ODI4/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" allowFullscreen="true" allownetworking="internal" type="application/x-shockwave-flash"></embed>
外链优酷视频的广告屏蔽前:
屏蔽广告后:
end~~感觉土豆网对这个方法不太感冒,如果不行请继续往下看。
把优酷的新款播放器替换成旧版的播放器,把上面的视频替换成下面的样子就行了,注意两个地方:
①视频ID地址(ID字符串(“XMzU2MTE5ODI4”)是相同的)
②确保这一段是这样的:allowScriptAccess="sameDomain"
<embed src="http://static.youku.com/v/swf/qplayer.swf?VideoIDS=XMzU2MTE5ODI4" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" allowFullscreen="true" type="application/x-shockwave-flash"></embed>
广告屏蔽后:
end~~
取得优酷土豆等视频网站的真实视频地址来使用。解析优酷的FLV或MP4地址,使用自己网站的播放器播放(PS:解析FLV地址后可以直接下载收藏)。
解析网站推荐两个:
http://www.flvxz.com/(似乎有时效性)
http://www.flvcd.com/(推荐)
解析到真实FLV地址后,使用自己的播放器播放,如使用 ckplayer 播放(PS:也可以使用AJAX获取 http://www.flvcd.com/parsew.php?kw=http%3A%2F%2Fv.youku.com%2Fv_show%2Fid_XMzU2MTE5ODI4.html 然后分析内容得到绝对可靠的视频地址来播放就万无一失了。):
更多请参阅:[优酷视频调用示例]
附录,关于代码中的两个参数:AllowScriptAccess 和 allowNetworking
1、AllowScriptAccess
参数:
sameDomain:仅当 SWF 文件和网页位于同一域中时才允许执行外出脚本访问。这是 AVM2 内容的默认值。
never:外出脚本访问将始终失败。
always:外出脚本访问将始终成功。
AllowScriptAccess 参数可以防止从一个域中承载的 SWF 文件访问来自另一个域的 HTML 页面中的脚本。
对从另一个域承载的所有 SWF 文件使用 AllowScriptAccess="never" 可以确保位于 HTML 页面中的脚本的安全性。
2、allowNetworking
参数:
"all"(默认值)― SWF 文件中允许使用所有网络 API。
"internal"― SWF 文件可能不调用浏览器导航或浏览器交互 API,但是它会调用任何其它网络 API。
"none"― SWF 文件可能不调用浏览器导航或浏览器交互 API,并且它无法使用任何 SWF 到 SWF 通信 API。
可以控制 SWF 文件对网络功能的访问。调用被禁止的 API 会引发 SecurityError 异常。
当 allowNetworking 设置为 "internal" 时,以下 API 被禁止:
navigateToURL()
fscommand()
ExternalInterface.call()
当 allowNetworking 设置为 "none" 时,除了上面列出的那些 API 外,还会禁止以下 API:
sendToURL()
FileReference.download()
FileReference.upload()
Loader.load()
LocalConnection.connect()
LocalConnection.send()
NetConnection.connect()
NetStream.play()
Security.loadPolicyFile()
SharedObject.getLocal()
SharedObject.getRemote()
Socket.connect()