许久不发文了,2018年第一篇文章,写点干货——关于网页播放器的问题。嗯,实际上我是在52破解首发的,当做新人贴。

目前来说,网页播放器不少,随便找找都能找到一大堆,然而好用的就那么几个,比如ckplayer什么的。2017年底,自己想给这个小博客增加视频播放功能,之前也发过几篇关于typecho视频播放器的帖子,奈何都是别人的成果,总想自己搞一个,并且同时支持PC+移动端+播放列表的功能,要想完成还是要费一番功夫的,巧的是当时逛谷歌的时候真的让我找到了一个这样的播放器,当然也是付费的!接下来的工作想必都能猜到O(∩_∩)O哈哈~

先放出实验对象——Flash HTML5 Web Video Player我觉得一个正常的公司不会起一个这么直白的名字 -_-|| 还卖39美元!实际卖的是一个十几兆的小软件,自定义后可自动生成swf格式的播放器,只要在网页上引用就可以实现播放功能了。官方提供试用版,但是播放视频会在左上角带有一个官网地址的标记,非常烦人,详细见下图。我要做的就是去掉这个链接,但是,我的做法不是破解注册软件本身,而是从生成的swf文件入手。很自然地想到对swf文件逆向,这确实可行,用AS3 Sorcerer的确可以拿到swf的源码,并且源码看上去还很正常,AS3 Sorcerer在很多地方都可以下载到,我尝试了其他的逆向工具,无奈都失败了,有些工具逆向出来的部分AS文件是空白的。逆向后会发现在所有文件架最外层有一个主文件,打开这个AS3文件真的算是大开眼界,代码非常工整,很容易就找到了我们要找的地方:

private function InitWatermark():void
{
var _local_1:*;
var _local_2:TextFormat;
var _local_3:*;
if (cfgObject.demo)
{
_local_1 = new TextField();
_local_1.multiline = true;
_local_1.wordWrap = false;
_local_1.selectable = false;
_local_1.htmlText = "<a ><font face='Arial,Verdana'>http://www.magichtml.com</font></a>";
_local_1.autoSize = TextFieldAutoSize.LEFT;
_local_2 = new TextFormat();
_local_2.align = TextFormatAlign.CENTER;
_local_1.setTextFormat(_local_2);
_local_1.x = 8;
_local_1.y = 8;
_local_3 = new Sprite();
_local_3.graphics.beginFill(0xFFFFFF);
_local_3.graphics.drawRoundRect(0, 0, (_local_1.width + 8), (_local_1.height + 8), 8, 8);
_local_3.graphics.endFill();
_local_3.x = 4;
_local_3.y = 4;
_local_3.alpha = 1;
watermarkMC = new MovieClip();
watermarkMC.addChild(_local_3);
watermarkMC.addChild(_local_1);
this.addChild(watermarkMC);
watermarkMC.x = 8;
watermarkMC.y = 8;
};
}

问题就集中在那个if判断里,本想着只要不进入if里就可以,修改后再编译成swf就行。但是,事情并没有那么简单,自己尝试了很多次,虽然调用Flash SDK下的mxmlc确实可以不报错生成swf文件,但是完全不能用,浏览器调用后只会显示一块黑色区域。PS:后来发现,那个公司最成功的一款产品是swf加密软件,估计在生成swf文件过程中也加密了。

出现这种情况对我来讲基本无解了,因为完全不知道问题在哪。后来在使用另一款软件ActionScriptViewer后发现,该款软件可以在不破坏swf文件的前提下直接编辑swf里的常量!看到希望了\(o)/~

返回之前的源码,发现在if里的判断实际就是调用了常量demo,这个值实际是软件自己加上去的,跟第一张图右侧播放器的相关设置在一起(类似xml文件)放在主文件开头出,相当于一个全局常量。所以只要一开始设置播放器时给一个false常量然后把if判断指向这个常量就好了。我这里用到的是randomPlay。只要在ActionScriptViewer里将demo换成randomPlay就完成了。之后保存就好,浏览器再调用swf就正常了。至此,结束。至于调用的视频,swf播放器会调用一个同名的xml文件,里面指明了视频地址和缩略图。

我把自己修改好的播放器文件放出来:https://files.cnblogs.com/files/liuke-note/player.zip 至于使用方法,很简单看看里面的html文件就懂了

全平台网页播放器兼容H5与Flash还带播放列表的更多相关文章

  1. .net C# 网页播放器 支持多种格式 媒体播放器 播放器 代码

    .avi格式代码片断如下:<object id='video' width='400' height='200' border='0' classid='clsid:CFCDAA03-8BE4- ...

  2. 推荐下:开源ckplayer 网页播放器, 跨平台(html5, mobile),flv, f4v, mp4, rtmp协议. webm, ogg, m3u8 !

    视频播放, 原本是想h5 自带视频播放,使用很简单,结果现实很骨感. <video controls="controls" preload="auto" ...

  3. Android流媒体开发之路三:基于NDK开发Android平台RTSP播放器

    基于NDK开发Android平台RTSP播放器 最近做了不少android端的开发,有推流.播放.直播.对讲等各种应用,做了RTMP.RTSP.HTTP-FLV.自定义等各种协议,还是有不少收获和心得 ...

  4. 最简单的基于Flash的流媒体示例:网页播放器(HTTP,RTMP,HLS)

    http://blog.csdn.net/leixiaohua1020/article/details/43936415 ======================================= ...

  5. 使用Window Media Player网页播放器

    近段时间在做一个IETM的项目,项目需要使用WebBrower对包含avi的xml进行显示,可avi的显示总是有问题,网上找到这段在html中播放avi的代码,在Win10上表现不错,明天上班用Win ...

  6. 如何实现Windows平台RTMP播放器/RTSP播放器播放窗口添加OSD文字叠加

    好多开发者在做Windows平台特别是单屏多画面显示时,希望像监控摄像机一样,可以在播放画面添加OSD台标,以实现字符叠加效果,大多开发者可很轻松的实现以上效果,针对此,本文以大牛直播SDK (Git ...

  7. PLDroidPlayer 是七牛推出的一款免费的适用于 Android 平台的播放器 SDK,采用全自研的跨平台播放内核,拥有丰富的功能和优异的性能,可高度定制化和二次开发。 https://developer.qiniu.com/pili/sdk/…

    PLDroidPlayer PLDroidPlayer 是一个适用于 Android 平台的音视频播放器 SDK,可高度定制化和二次开发,为 Android 开发者提供了简单.快捷的接口,帮助开发者在 ...

  8. iOS 11 实现App在禁止转屏的状态下网页播放器全屏

    禁止转屏是这个意思,在General中设置Device Orientation只有竖屏. 要点就是重写UIViewController的以下3个属性方法 系统的全屏视频播放器是AVFullScreen ...

  9. ckplayer网页播放器简易教程

    前言 ckplayer是一款在网页上播放视频的免费视频插件,该插件兼容性强.使用简单.api齐全.另外,任何个人网站或商业网站在不修改右键版权的基础上都可以免费使用. 下面将对ckplayer的整个使 ...

随机推荐

  1. 循环语句之for循环

    什么是循环语句? 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否 ...

  2. Firefox 中出现的 “Network Protocol Error”怎么办

    Mozilla Firefox 多年来一直是我的默认 Web 浏览器,我每天用它来进行日常网络活动,例如访问邮件,浏览喜欢的网站等.今天,我在使用 Firefox 时遇到了一个奇怪的错误.我试图在 R ...

  3. springboot打jar包正常无法访问页面

    网上看到太多说版本换成 1.4.2.RELEASE. 可以将程序打成war包发布, 1.启动类改为 @Overrideprotected SpringApplicationBuilder config ...

  4. ST表

    ST表的原理及其实现 ST表类似树状数组,线段树这两种算法,是一种用于解决RMQ(Range Minimum/Maximum Query,即区间最值查询)问题的离线算法 与线段树相比,预处理复杂度同为 ...

  5. OTZ%%%子谦。大佬

    又上了节课...俩题 计算系数    组合数问题... 要不是大佬指点就只能阶乘暴力算了 (主要还是我忘了杨辉三角) 杨辉三角与组合数C有着千丝万缕的联系,在计算,使用方面相当方便. 先说计算系数 计 ...

  6. Flask的插件session、SQLAlchemy、Script、Migrate

    一.flask-session 1.为什么要使用flask-session 因为flask默认的session是通过请求上下文放入到Local中的,是存在内存的,而使用flask-session可以更 ...

  7. 初学cdq分治学习笔记(可能有第二次的学习笔记)

    前言骚话 本人蒟蒻,一开始看到模板题就非常的懵逼,链接,学到后面就越来越清楚了. 吐槽,cdq,超短裙分治....(尴尬) 正片开始 思想 和普通的分治,还是分而治之,但是有一点不一样的是一般的分治在 ...

  8. 微信小程序之 3d轮播(swiper来实现)

    以前写过一篇3d轮播,就是这篇,使用的方法比较笨拙,而且代码不简洁.这次发现swiper也能实现同样的效果.故记录一下. 先看看效果: wxml: <swiper previous-margin ...

  9. centos7下tomcat8.5安装部署与优化

    转自:https://www.cnblogs.com/busigulang/articles/8529719.html centos 7 Tomcat 8.5 的安装及生产环境的搭建调优 一 安装to ...

  10. Mac新手必看教程—让你离熟练操作mac只差十分钟

    本文收录于:风云社区(提供各类mac软件资源下载) 本文源自:什么值得买 无论轻薄办公本.还是赶超台式性能的游戏本,关注#笔记本攻略#栏目,解决笔记本电脑从选购到使用的各种问题. 引子 大部分用户接触 ...