CN106941620B - 一种Flash资源加载方法及装置 - Google Patents
一种Flash资源加载方法及装置 Download PDFInfo
- Publication number
- CN106941620B CN106941620B CN201710206830.3A CN201710206830A CN106941620B CN 106941620 B CN106941620 B CN 106941620B CN 201710206830 A CN201710206830 A CN 201710206830A CN 106941620 B CN106941620 B CN 106941620B
- Authority
- CN
- China
- Prior art keywords
- resource file
- decrypted
- flash
- encryption
- file group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 abstract description 13
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000005587 bubbling Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4405—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
- H04N21/4353—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving decryption of additional data
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种Flash资源加载方法及装置,应用于视频播放技术领域,该方法包括:获取到加密资源文件组;根据加密资源文件组中的待解密Flash资源文件的个数创建至少两个解密线程;通过至少两个解密线程并行对加密资源文件组中的待解密Flash资源文件进行解密操作,以解密出各个Flash资源文件;将解密出的各个Flash资源文件加载在Flash舞台上。本发明有效解决了采用Flash的视频播放器进行直播会出现卡顿的技术问题,提高了视频直播的流畅度。
Description
技术领域
本发明涉及视频播放技术领域,尤其涉及一种Flash资源加载方法及装置。
背景技术
目前,Flash(一种动画创作与应用程序开发于一身的创作软件)被广泛的用于网页设计和网页动画制作及网页视频播放等。大多数的视频网站包括直播网站都采用Flash作为视频播放器,并且大多数的网页游戏也会使用Flash来开发,Flash的开发是使用ActionScript脚本语言来开发,其开发的代码非常容易被反编译,从而非常容易弄清楚其中的逻辑。为了对资源文件(图片文件、声音文件、动画文件等)进行更安全的保护,大多会对所有使用的资源文件进行加密存储,使用的时候再进行解密。由于编写ActionScript代码大多使用的是单线程的顺序执行流程,最终导致解密多个资源文件时速度非常慢,此时视频播放会出现卡顿的状态。可见,采用Flash的视频播放器进行视频直播会出现卡顿。
发明内容
本发明实施例通过提供一种Flash资源加载方法及装置,解决了采用Flash 的视频播放器进行视频直播会出现卡顿的技术问题。
第一方面,本发明实施例提供了一种Flash资源加载方法,应用于客户端,包括:
获取到加密资源文件组;
根据所述加密资源文件组中的待解密Flash资源文件的个数创建至少两个解密线程;
通过所述至少两个解密线程并行对所述加密资源文件组中的待解密Flash 资源文件进行解密操作,以解密出各个Flash资源文件;
将解密出的各个所述Flash资源文件加载在Flash舞台上。
可选的,所述获取到加密资源文件组,包括:
向存储有所述加密资源文件组的服务器发送资源请求,其中,所述资源请求包括用于从所述服务器中确定出所述加密资源文件组的资源定位标识;
从所述服务器接收所述加密资源文件组中的各个待解密Flash资源文件并存储至同一数组。
可选的,所述向存储有所述加密资源文件组的服务器发送资源请求,包括:
通过调用ActionScript脚本的请求接口向所述服务器发送所述资源请求;
所述从所述服务器接收所述加密资源文件组中的各个待解密Flash资源文件并存储至同一数组,包括:
通过调用ActionScript脚本的各个加载实例,对应的从所述服务器下载所述加密资源文件组中的各个待解密Flash资源文件并存储至同一数组,其中,所述加载实例的个数与所述加密资源文件组中的各个待解密Flash资源文件的个数相同。
可选的,所述根据所述加密资源文件组中的待解密Flash资源文件的个数创建至少两个解密线程,包括:
检测所述客户端的CPU内核数以及所述加密资源文件组中的待解密Flash 资源文件的个数;
将所述客户端的CPU内核数与所述加密资源文件组中的待解密Flash资源文件的个数进行对比;
如果对比结果为所述加密资源文件组中的待解密Flash资源文件的个数少于或等于所述客户端的CPU内核数,创建所述解密线程的个数与所述加密资源文件组中的待解密Flash资源文件的个数相同;
如果对比结果为所述加密资源文件组中的待解密Flash资源文件的个数多于所述客户端的CPU内核数,创建所述解密线程的个数与所述客户端的CPU 内核数相同。
可选的,所述根据所述加密资源文件组中的待解密Flash资源文件的个数创建至少两个解密线程,包括:
检测所述加密资源文件组中的待解密Flash资源文件的个数;
判断所述加密资源文件组中的待解密Flash资源文件的个数是否少于或等于预设数量值;
如果所述加密资源文件组中的待解密Flash资源文件的个数少于或等于所述预设数量值,创建所述解密线程的个数与所述加密资源文件组中的待解密 Flash资源文件的个数相同,否则创建所述解密线程的个数为所述预设数量值。
可选的,如果创建所述解密线程的个数与所述加密资源文件组中的待解密 Flash资源文件的个数相同,均为N个,N为大于1的整数,所述通过所述至少两个解密线程并行对所述加密资源文件组中的待解密Flash资源文件进行解密操作,包括;
并行调度N个解密线程一次,对应的对所述加密资源文件组中的N个待解密Flash资源文件进行解密操作,以解密出N个所述Flash资源文件。
可选的,如果创建所述解密线程的个数与所述客户端的CPU内核数相同,均为M个,所述加密资源文件组中的待解密Flash资源文件为P个,M为大于 1的整数,P为大于M的整数,所述通过所述至少两个解密线程并行对所述加密资源文件组中的待解密Flash资源文件进行解密操作,包括;
并行调度M个解密线程K次,直至解密完所述加密资源文件组中的P个待解密Flash资源文件,其中,每次并行调用所述M个解密线程,以同时对所述加密资源文件组中的M个待解密Flash资源文件进行解密操作,K为大于1 的整数。
第二方面,本发明实施例提供了一种Flash资源加载装置,应用于客户端,包括:
加密资源获取模块,用于获取到加密资源文件组;
线程创建模块,用于根据所述加密资源文件组中的待解密Flash资源文件的个数创建至少两个解密线程;
并行解密模块,用于通过所述至少两个解密线程并行对所述加密资源文件组中的待解密Flash资源文件进行解密操作,以解密出各个Flash资源文件;
资源加载模块,用于将解密出的各个所述Flash资源文件加载在Flash舞台上。
可选的,所述加密资源获取模块,包括:
请求发送单元,用于向存储有所述加密资源文件组的服务器发送资源请求,其中,所述资源请求包括用于从所述服务器中确定出所述加密资源文件组的资源定位标识;
资源接收单元,用于从所述服务器接收所述加密资源文件组中的各个待解密Flash资源文件并存储至同一数组。
可选的,请求发送单元,具体用于:
通过调用ActionScript脚本的请求接口向所述服务器发送所述资源请求;
所述资源接收单元,具体用于:
通过调用ActionScript脚本的各个加载实例,对应的从所述服务器下载所述加密资源文件组中的各个待解密Flash资源文件并存储至同一数组,其中,所述加载实例的个数与所述加密资源文件组中的各个待解密Flash资源文件的个数相同。
可选的,所述线程创建模块,包括:
第一个数检测单元,用于检测所述客户端的CPU内核数以及所述加密资源文件组中的待解密Flash资源文件的个数;
个数对比单元,用于将所述客户端的CPU内核数与所述加密资源文件组中的待解密Flash资源文件的个数进行对比;
第一创建单元,用于如果对比结果为所述加密资源文件组中的待解密Flash 资源文件的个数少于或等于所述客户端的CPU内核数,创建所述解密线程的个数与所述加密资源文件组中的待解密Flash资源文件的个数相同,如果对比结果为所述加密资源文件组中的待解密Flash资源文件的个数多于所述客户端的CPU内核数,创建所述解密线程的个数与所述客户端的CPU内核数相同。
可选的,所述线程创建模块,包括:
第二个数检测单元,用于检测所述加密资源文件组中的待解密Flash资源文件的个数;
判断单元,用于判断所述加密资源文件组中的待解密Flash资源文件的个数是否少于或等于预设数量值;
第二创建单元,用于如果所述加密资源文件组中的待解密Flash资源文件的个数少于或等于所述预设数量值,创建所述解密线程的个数与所述加密资源文件组中的待解密Flash资源文件的个数相同,否则创建所述解密线程的个数为所述预设数量值。
可选的,如果创建所述解密线程的个数与所述加密资源文件组中的待解密 Flash资源文件的个数相同,均为N个,N为大于1的整数,所述并行解密模块,具体用于;
并行调度N个解密线程一次,同时对所述加密资源文件组中的N个待解密Flash资源文件进行解密操作,以解密出N个所述Flash资源文件。
可选的,如果创建所述解密线程的个数与所述客户端的CPU内核数相同,均为M个,所述加密资源文件组中的待解密Flash资源文件为P个,M为大于 1的整数,P为大于M的整数,所述并行解密模块,具体用于;
并行调度M个解密线程K次,直至解密完所述加密资源文件组中的P个待解密Flash资源文件,其中,每次并行调用所述M个解密线程,同时对所述加密资源文件组中的M个待解密Flash资源文件进行解密操作,K为大于1 的整数。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
由于采根据获取到的加密资源文件组中的待解密Flash资源文件的个数创建至少两个解密线程;通过创建的至少两个解密线程并行对加密资源文件组中的待解密Flash资源文件进行解密操作,以解密出各个Flash资源文件;将解密出的各个Flash资源文件加载在Flash舞台上。各个线程并行对加密资源文件组中的各个待解密Flash资源文件进行解密操作,以极大的提高了对多个 Flash资源文件解密的速度,从而在同时或短时间需要加载到Flash舞台较多时,能够快速将这几个需要同时或短时间加载到Flash舞台的Flash资源文件同时进行解密,减少了等待的时间,甚至不需要等待,进而满足加载到Flash舞台的节奏,从而有效解决了采用Flash的视频播放器进行视频直播会出现卡顿的技术问题,提高了视频直播的流畅度,也可以更多的Flash资源文件可以加密存储,进一步提高了Flash资源文件的存储安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中Flash资源加载方法的流程图;
图2为图1中步骤S101的细化流程图;
图3为针对图1中步骤S102的一实施方式的细化流程图;
图4为针对图1中步骤S102的另一实施方式的细化流程图;
图5为发明实施例中Flash资源加载装置的示意图。
具体实施方式
为了解决现有技术中采用Flash的视频播放器进行直播会出现卡顿的技术问题,本发明实施例通过提供一种Flash资源加载方法,总体思路如下:
通过创建多个线程,并行对获取的加密的Flash资源文件进行解密操作。以同时对多个Flash资源文件进行解密,从而极大的提高了对多个Flash资源文件同时解密的速度,从而有效解决了采用Flash的视频播放器进行直播会出现卡顿的技术问题,提高了视频直播的流畅度。
本发明实施例提供的一种Flash资源加载方法,应用于安装有用于播放 flash资源文件的播放器的客户端,在本发明实施例中,安装有用于播放flash 资源文件的播放器的客户端可以为智能手机或平板电脑、个人计算机。
参考图1所示,本发明实施例提供的Flash资源加载方法,包括如下步骤:
S101、获取到加密资源文件组;
S102、根据加密资源文件组中的待解密Flash资源文件的个数创建至少两个解密线程;
S103、通过创建的至少两个解密线程并行对加密资源文件组中的待解密 Flash资源文件进行解密操作,以解密出各个Flash资源文件;
S104、将解密出的各个Flash资源文件加载在Flash舞台上。
需要说明的是,创建解密线程的个数应该受到客户端的CPU内核数的限制,即:创建的解密线程的个数少于或等于客户端的CPU内核数。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
首先,执行S101、获取到加密资源文件组。
需要说明的是,加密资源文件组存储在服务器上,加密资源文件组中包括图片文件、声音文件、动画文件中的一种或多种。针对通过网络从存储有Flash 资源文件的服务上获取加密资源文件组,参考图2所示,本发明可以以包括如下步骤的实施例实现:
首先,执行S1011、向存储有加密资源文件组的服务器发送资源请求,其中,资源请求包括用于从服务器中确定出加密资源文件组的资源定位标识。
具体的,通过调用ActionScript脚本的请求接口向服务器发送资源请求。具体的请求接口为:
URLRequest(url:String=null)
其中,参数url:String标示传入的资源定位标识。
接着,执行S1012、从服务器接收加密资源文件组中的各个待解密Flash 资源文件并存储至同一数组。
具体的,调用加载实例的加载接口来从服务器加载向服务器请求的加密资源文件组。加载实例为:基于ActionScript脚本定义Loader实例。
需要说明的是,针对加密资源文件组中的各个待解密Flash资源文件进行以同样的步骤从服务器下载。下面,以一个待解密Flash资源文件的下载为例进行解释说明,本领域技术人员则可以知晓各个待解密Flash资源文件的下载的实现方式:
通过调用加载实例的加载接口从服务器下载待解密Flash资源文件。具体的加载接口如下:
load(request:URLRequest,context:LoaderContext=null)
其中,参数request:URLRequest为加载的请求对象,在本发明实施例中,加载的请求对象为URLRequest对象,参数context:LoaderContext用来设置域信息,本文设置为默认值空。
在ActionScript脚本中提供有Loader类,基于Loader对象的contentLoadInfo 的属性注册事件。待解密Flash资源文件加载完成时触发已经注册事件的回调函数执行,以监听到待解密Flash资源文件加载完成。
在Loader对象的contentLoadInfo属性中提供用来注册事件的接口addEventListener,addEventListener接口的具体原型如下:
其中,参数type:String表示注册事件的事件类型,在本实施例中,事件类型为:注册待解密Flash资源文件加载完成事件,即:Event.COMPLETE。
参数listener:Function为处理待解密Flash资源文件加载完成事件的回调函数。
参数useCapture:Boolean=false,用于确定回调函数是运行于捕获阶段、目标阶段还是冒泡阶段,如果useCapture设置为true,则回调函数只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。如果useCapture为false,则回调函数只在目标阶段或冒泡阶段处理事件。如果调用addEventListener两次:一次将useCapture设置为true,一次将useCapture设置为false,从而在捕获阶段、目标阶段和冒泡阶段都侦听事件。在本发明实施例中,回调函数只在目标阶段或冒泡阶段处理事件。
参数priority:int用于标示待解密Flash资源文件加载完成事件的优先级,优先级由一个带符号的32位整数指定。数字越大,优先级越高,在本发明实施例中,待解密Flash资源文件加载完成事件的优先级为默认优先级:0级。
参数useWeakReference:Boolean用于指定回调函数是弱应用还是强引用,强引用(默认值)可防止回调函数被当作垃圾回收。弱引用则没有此作用在本实施例中,在本发明实施例中,参数useWeakReference:Boolean使用默认值: false。
通过调用各个ActionScript脚本的加载实例,对应的从服务器下载加密资源文件组中的各个待解密Flash资源文件并存储至同一数组。
接着,各个待解密Flash资源文件通过回调函数的参数evt.target.content.Data来传递。当各个待解密Flash资源文件均下载完成后,各个待解密Flash资源文件存储在一个数组ArrayData中。
在S101之后,接着执行S102:根据加密资源文件组中的待解密Flash资源文件的个数创建至少两个解密线程。
在本发明实施例中,根据加密资源文件组中的待解密Flash资源文件的个数创建至少两个解密线程的同时,创建的解密线程的个数少于或等于客户端的 CPU内核数。
下面对根据加密资源文件组中的待解密Flash资源文件的个数创建至少两个解密线程的同时,满足创建的解密线程的个数少于或等于客户端的CPU内核数的过程进行详细介绍:
在一实施方式中,参考图3所示,S102包括:
S1021、检测客户端的CPU内核数以及加密资源文件组中的待解密Flash 资源文件的个数;
S1022、将客户端的CPU内核数与加密资源文件组中的待解密Flash资源文件的个数进行对比;
S1023、如果对比结果为加密资源文件组中的待解密Flash资源文件的个数少于或等于客户端的CPU内核数,创建解密线程的个数与待解密Flash资源文件的个数相同,如果对比结果为待解密Flash资源文件的个数多于客户端的 CPU内核数,创建解密线程的个数与客户端的CPU内核数相同。
以检测到客户端的CPU内核数为8为例来讲,如果监测到加密资源文件组中的待解密Flash资源文件2个,则创建2个解密线程;如果监测到加密资源文件组中的待解密Flash资源文件为3个,则创建3个解密线程;如果监测到加密资源文件组中的待解密Flash资源文件为4个,则创建4个解密线程;如果监测到加密资源文件组中的待解密Flash资源文件为5个,则创建5个解密线程,如果监测到加密资源文件组中的待解密Flash资源文件为6个,则创建6个解密线程;如果监测到加密资源文件组中的待解密Flash资源文件为7 个,则创建7个解密线程;如果监测到加密资源文件组中的待解密Flash资源文件为8个,则创建8个解密线程。如果监测到加密资源文件组中的待解密Flash 资源文件为9个、10个、11个、12个等等,均创建8个解密线程。
具体的,通过从客户端提取客户端的配置信息,从客户端的配置信息中确定出客户端的CPU内核数。
通过OpenMP(Open Multi-Processing,共享存储并行编程)中的线程设置接口(omp_set_num_threads)指定其后用于并行解密操作的线程数;
void omp_set_num_threads(int num_threads)
其中,参数num_thread为指定的线程数。以客户端的CPU内核数为8为
例来讲,调用线程设置接口(omp_set_num_threads)设置线程的数目为8:
omp_set_num_threads (8)
在另一实施方式中,参考图4所示,S102包括:
S1021'、检测加密资源文件组中的待解密Flash资源文件的个数;
S1022'、判断待解密Flash资源文件的个数是否少于或等于预设数量值;
S1023'、如果待解密Flash资源文件的个数少于或等于预设数量值,创建解密线程的个数与待解密Flash资源文件的个数相同,否则创建解密线程的个数为预设数量值。
需要说明的是,预设数量值为当前主流CPU的内核数目,比如,目前主流的CPU都是8核及以上,可以调用接口来设置线程的数目为8。比如,目前主流的CPU都是16核及以上,可以调用接口来设置线程的数目为16。
调用线程设置接口(omp_set_num_threads)设置线程的数目为8:
omp_set_num_threads (8)
则如果判断出待解密Flash资源文件少于或等于8个,则根据解密线程的个数与待解密Flash资源文件的个数相同,则如果判断出待解密Flash资源文件多于8个,均只创建8个解密线程。
在S102之后,接着执行S103:通过创建的至少两个解密线程并行对加密资源文件组中的待解密Flash资源文件进行解密操作,以解密出各个Flash资源文件。
针对S102中创建解密线程的个数与待解密Flash资源文件的个数相同,均为N个的情况,N为大于1的整数,在S103中:并行调度N个解密线程一次,对应的对加密资源文件组中的N个待解密Flash资源文件进行解密操作,以解密出N个Flash资源文件。
具体的,N个解密线程,一个解密线程对应解密一个待解密Flash资源文件,以一一对应的对N个待解密Flash资源文件进行解密。
在具体实施过程中,通过编译器指令通知编译器,该预置编译器指令后续的解密伪代码通过N个解密线程并行执行,来对同一数组中存储的N个解密线程进行解密操作。具体的,通知编译器的编译器指令为:
#pragma omp parallel for schedule(dynamic)
其中,参数dynamic标示使用动态调度策略来调度创建的N个解密线程。解密伪代码具体为:
其中,ArrayData.size则标示是数组的大小,DecodeData是解密接口,对数组中的第i个待解密Flash资源文件进行解密操作。
针对S102中创建解密线程的个数与客户端的CPU内核数相同,均为M个,述加密资源文件组中的待解密Flash资源文件为P个,M为大于1的整数,P 为大于M的整数,S103包括:并行调度M个解密线程K次,直至解密完加密资源文件组中的P个待解密Flash资源文件,其中,每次并行调用M个解密线程,以同时对加密资源文件组中的M个待解密Flash资源文件进行解密操作, K为大于1的整数。
需要说明的是,并行调度M个解密线程K次,所指为进行K次调度,其中,每次调度都是使进行M个解密线程进行解密,一共执行K*M个待解密Flash 资源文件的解密。
具体的,通过编译器指令通知编译器,该预置编译器指令后续的解密伪代码通过M个解密线程并行执行,P个待解密Flash资源文件进行解密操作。第一次调度M个解密线程,以对P个待解密Flash资源文件中的M个进行解密操作,第二次调度M个解密线程,对P个待解密Flash资源文件中的另外M 个进行解密操作,以此规律进行,直至解密完P个待解密Flash资源文件。
具体的,通知编译器的编译器指令为:
#pragma omp parallel for schedule(dynamic)
其中,参数dynamic标示使用动态调度策略来调度创建的M个解密线程。其中,解密伪代码具体为
其中,ArrayData.size标示是数组的大小,DecodeData是解密接口,对数组中的第i个待解密Flash资源文件进行解密操作。
具体的,M个解密线程,一个解密线程对应解密一个待解密Flash资源文件,以一一对应的对M个待解密Flash资源文件进行解密,针对M个解密线程中的每个解密线程,解密完第一个待解密Flash资源文件后,再解密下一个待解密Flash资源文件。
通过OpenMP自动创建多线程来并行执行解密操作后,则所有存储在 ArrayData数组中的待解密Flash资源文件都被解密完,解密得到各个可以加载到Flash舞台的Flash资源文件。
基于步骤S103的如上两种实施方式,能够更充分的使用CPU多核的优势,将对待解密Flash资源文件的解密逻辑剥离出来并行运行,更合理的、最大限度的创建并行的多个线程来对待解密Flash资源文件进行数据解密操作,从而极大提高了数据解密的速度,从而可以将所有的资源文件都进行加密后存储到服务器,而不再是部分,然后从服务器请求加密后的Flash资源文件后再使用并行处理来解密文件后进行使用,进一步提高了Flash资源文件的存储安全性。
在S103之后,接着执行S104:将解密出的各个Flash资源文件加载在Flash 舞台上。
解密出的各个Flash资源文件包括图片文件、声音文件、动画文件中的一种或多种,对于不同类型的Flash资源文件使用不同的Flash类型对象来加载。针对图片文件,则使用图片对象来加载到Flash舞台中,针对声音则使用声音对象来加载。
例如,图片资源var img:Bitmap=new Bitmap(ArrayData[i]),创建一个图片对象stage.addChild(img),将图片对象stage.addChild(img)加载到Flash舞台。
基于同一发明构思,本发明实施例提供了一种Flash资源加载装置,参考图5所示,包括:
加密资源获取模块201,用于获取到加密资源文件组;
线程创建模块202,用于根据加密资源文件组中的待解密Flash资源文件的个数创建至少两个解密线程;
并行解密模块203,用于通过至少两个解密线程并行对加密资源文件组中的待解密Flash资源文件进行解密操作,以解密出各个Flash资源文件;
资源加载模块204,用于将解密出的各个Flash资源文件加载在Flash舞台上。
可选的,加密资源获取模块,包括:
请求发送单元,用于向存储有加密资源文件组的服务器发送资源请求,其中,资源请求包括用于从服务器中确定出加密资源文件组的资源定位标识;
资源接收单元,用于从服务器接收加密资源文件组中的各个待解密Flash 资源文件并存储至同一数组。
可选的,请求发送单元,具体用于:
通过调用ActionScript脚本的请求接口向服务器发送资源请求;
资源接收单元,具体用于:
通过调用ActionScript脚本的各个加载实例,对应的从服务器下载加密资源文件组中的各个待解密Flash资源文件并存储至同一数组,其中,加载实例的个数与加密资源文件组中的各个待解密Flash资源文件的个数相同。
可选的,线程创建模块,包括:
第一个数检测单元,用于检测客户端的CPU内核数以及加密资源文件组中的待解密Flash资源文件的个数;
个数对比单元,用于将客户端的CPU内核数与加密资源文件组中的待解密Flash资源文件的个数进行对比;
第一创建单元,用于如果对比结果为加密资源文件组中的待解密Flash资源文件的个数少于或等于客户端的CPU内核数,创建解密线程的个数与加密资源文件组中的待解密Flash资源文件的个数相同,如果对比结果为加密资源文件组中的待解密Flash资源文件的个数多于客户端的CPU内核数,创建解密线程的个数与客户端的CPU内核数相同。
可选的,线程创建模块,包括:
第二个数检测单元,用于检测加密资源文件组中的待解密Flash资源文件的个数;
判断单元,用于判断加密资源文件组中的待解密Flash资源文件的个数是否少于或等于预设数量值;
第二创建单元,用于如果加密资源文件组中的待解密Flash资源文件的个数少于或等于预设数量值,创建解密线程的个数与加密资源文件组中的待解密 Flash资源文件的个数相同,否则创建解密线程的个数为预设数量值。
可选的,如果创建解密线程的个数与加密资源文件组中的待解密Flash资源文件的个数相同,均为N个,N为大于1的整数,并行解密模块,具体用于;
并行调度N个解密线程一次,同时对加密资源文件组中的N个待解密Flash 资源文件进行解密操作,以解密出N个Flash资源文件。
可选的,如果创建解密线程的个数与客户端的CPU内核数相同,均为M 个,加密资源文件组中的待解密Flash资源文件为P个,M为大于1的整数,P为大于M的整数,并行解密模块,具体用于;
并行调度M个解密线程K次,直至解密完加密资源文件组中的P个待解密Flash资源文件,其中,每次并行调用M个解密线程,同时对加密资源文件组中的M个待解密Flash资源文件进行解密操作,K为大于1的整数。
由于本实施例所介绍的装置为实施本发明实施例中Flash资源加载方法所采用的装置,故而基于本发明实施例中所介绍Flash资源加载方法,本领域所属技术人员能够了解本实施例的装置的具体实施方式以及其各种变化形式,所以在此对于该装置如何实现本发明实施例中的方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中信息处理的方法所采用的装置,都属于本发明所欲保护的范围。
上述本发明实施例中的技术方案,至少具有如下的技术效果或优点:
由于采根据获取到的加密资源文件组中的待解密Flash资源文件的个数创建至少两个解密线程;通过至少两个解密线程并行对加密资源文件组中的待解密Flash资源文件进行解密操作,以解密出各个Flash资源文件;将解密出的各个Flash资源文件加载在Flash舞台上。从而通过多线程并行对多个待解密 Flash资源文件进行解密操作,以极大的提高了对多个Flash资源文件解密的速度,从而在同时或短时间需要加载到Flash舞台较多时,能够快速将这几个同时或短时间需要加载到Flash舞台的Flash资源文件同时进行解密,减少了等待的时间,甚至不需要等待,进而满足加载到Flash舞台的节奏,从而有效解决了采用Flash的视频播放器进行直播会出现卡顿的技术问题,提高了视频直播的流畅度。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种Flash资源加载方法,应用于客户端,其特征在于,包括:
获取到加密资源文件组;
根据所述加密资源文件组中的待解密Flash资源文件的个数创建至少两个解密线程,具体包括:检测所述客户端的CPU内核数以及所述加密资源文件组中的待解密Flash资源文件的个数;将所述客户端的CPU内核数与所述加密资源文件组中的待解密Flash资源文件的个数进行对比;如果对比结果为所述加密资源文件组中的待解密Flash资源文件的个数少于或等于所述客户端的CPU内核数,创建所述解密线程的个数与所述加密资源文件组中的待解密Flash资源文件的个数相同;如果对比结果为所述加密资源文件组中的待解密Flash资源文件的个数多于所述客户端的CPU内核数,创建所述解密线程的个数与所述客户端的CPU内核数相同;
通过所述至少两个解密线程并行对所述加密资源文件组中的待解密Flash资源文件进行解密操作,以解密出各个Flash资源文件;
将解密出的各个所述Flash资源文件加载在Flash舞台上。
2.如权利要求1所述的Flash资源加载方法,其特征在于,所述获取到加密资源文件组,包括:
向存储有所述加密资源文件组的服务器发送资源请求,其中,所述资源请求包括用于从所述服务器中确定出所述加密资源文件组的资源定位标识;
从所述服务器接收所述加密资源文件组中的各个待解密Flash资源文件并存储至同一数组。
3.如权利要求2所述的Flash资源加载方法,其特征在于,
所述向存储有所述加密资源文件组的服务器发送资源请求,包括:
通过调用ActionScript脚本的请求接口向所述服务器发送所述资源请求;
所述从所述服务器接收所述加密资源文件组中的各个待解密Flash资源文件并存储至同一数组,包括:
通过调用ActionScript脚本的各个加载实例,对应的从所述服务器下载所述加密资源文件组中的各个待解密Flash资源文件并存储至同一数组,其中,所述加载实例的个数与所述加密资源文件组中的各个待解密Flash资源文件的个数相同。
4.如权利要求1所述的Flash资源加载方法,其特征在于,所述根据所述加密资源文件组中的待解密Flash资源文件的个数创建至少两个解密线程,包括:
检测所述加密资源文件组中的待解密Flash资源文件的个数;
判断所述加密资源文件组中的待解密Flash资源文件的个数是否少于或等于预设数量值;
如果所述加密资源文件组中的待解密Flash资源文件的个数少于或等于所述预设数量值,创建所述解密线程的个数与所述加密资源文件组中的待解密Flash资源文件的个数相同,否则创建所述解密线程的个数为所述预设数量值。
5.如权利要求1或4所述的Flash资源加载方法,其特征在于,如果创建所述解密线程的个数与所述加密资源文件组中的待解密Flash资源文件的个数相同,均为N个,N为大于1的整数,所述通过所述至少两个解密线程并行对所述加密资源文件组中的待解密Flash资源文件进行解密操作,包括;
并行调度N个解密线程一次,对应的对所述加密资源文件组中的N个待解密Flash资源文件进行解密操作,以解密出N个所述Flash资源文件。
6.如权利要求1所述的Flash资源加载方法,其特征在于,如果创建所述解密线程的个数与所述客户端的CPU内核数相同,均为M个,所述加密资源文件组中的待解密Flash资源文件为P个,M为大于1的整数,P为大于M的整数,所述通过所述至少两个解密线程并行对所述加密资源文件组中的待解密Flash资源文件进行解密操作,包括;
并行调度M个解密线程K次,直至解密完所述加密资源文件组中的P个待解密Flash资源文件,其中,每次并行调用所述M个解密线程,以同时对所述加密资源文件组中的M个待解密Flash资源文件进行解密操作,K为大于1的整数。
7.一种Flash资源加载装置,应用于客户端,其特征在于,包括:
加密资源获取模块,用于获取到加密资源文件组;
线程创建模块,用于根据所述加密资源文件组中的待解密Flash资源文件的个数创建至少两个解密线程,具体包括:检测所述客户端的CPU内核数以及所述加密资源文件组中的待解密Flash资源文件的个数;将所述客户端的CPU内核数与所述加密资源文件组中的待解密Flash资源文件的个数进行对比;如果对比结果为所述加密资源文件组中的待解密Flash资源文件的个数少于或等于所述客户端的CPU内核数,创建所述解密线程的个数与所述加密资源文件组中的待解密Flash资源文件的个数相同;如果对比结果为所述加密资源文件组中的待解密Flash资源文件的个数多于所述客户端的CPU内核数,创建所述解密线程的个数与所述客户端的CPU内核数相同;
并行解密模块,用于通过所述至少两个解密线程并行对所述加密资源文件组中的待解密Flash资源文件进行解密操作,以解密出各个Flash资源文件;
资源加载模块,用于将解密出的各个所述Flash资源文件加载在Flash舞台上。
8.如权利要求7所述的Flash资源加载装置,其特征在于,如果创建所述解密线程的个数与所述加密资源文件组中的待解密Flash资源文件的个数相同,均为N个,N为大于1的整数,所述并行解密模块,具体用于;
并行调度N个解密线程一次,同时对所述加密资源文件组中的N个待解密Flash资源文件进行解密操作,以解密出N个所述Flash资源文件。
9.如权利要求7所述的Flash资源加载装置,其特征在于,如果创建所述解密线程的个数与所述客户端的CPU内核数相同,均为M个,所述加密资源文件组中的待解密Flash资源文件为P个,M为大于1的整数,P为大于M的整数,所述并行解密模块,具体用于;
并行调度M个解密线程K次,直至解密完所述加密资源文件组中的P个待解密Flash资源文件,其中,每次并行调用所述M个解密线程,同时对所述加密资源文件组中的M个待解密Flash资源文件进行解密操作,K为大于1的整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710206830.3A CN106941620B (zh) | 2017-03-31 | 2017-03-31 | 一种Flash资源加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710206830.3A CN106941620B (zh) | 2017-03-31 | 2017-03-31 | 一种Flash资源加载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106941620A CN106941620A (zh) | 2017-07-11 |
CN106941620B true CN106941620B (zh) | 2019-11-12 |
Family
ID=59464558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710206830.3A Active CN106941620B (zh) | 2017-03-31 | 2017-03-31 | 一种Flash资源加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106941620B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294539A (zh) * | 2013-05-09 | 2013-09-11 | 四三九九网络股份有限公司 | 批量解密flash游戏的方法和装置 |
CN105162595A (zh) * | 2015-08-03 | 2015-12-16 | 四川效率源信息安全技术有限责任公司 | 安全传输非压缩文件的加密以及解密方法 |
CN106375080A (zh) * | 2016-08-31 | 2017-02-01 | 武汉斗鱼网络科技有限公司 | 一种flash文件的加密及解密方法及其装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7660769B2 (en) * | 2006-09-12 | 2010-02-09 | International Business Machines Corporation | System and method for digital content player with secure processing vault |
-
2017
- 2017-03-31 CN CN201710206830.3A patent/CN106941620B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294539A (zh) * | 2013-05-09 | 2013-09-11 | 四三九九网络股份有限公司 | 批量解密flash游戏的方法和装置 |
CN105162595A (zh) * | 2015-08-03 | 2015-12-16 | 四川效率源信息安全技术有限责任公司 | 安全传输非压缩文件的加密以及解密方法 |
CN106375080A (zh) * | 2016-08-31 | 2017-02-01 | 武汉斗鱼网络科技有限公司 | 一种flash文件的加密及解密方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106941620A (zh) | 2017-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8793492B2 (en) | Methods and systems for scalable distribution of protected content | |
CN111143869B (zh) | 应用程序包处理方法、装置、电子设备及存储介质 | |
CN104298932B (zh) | 一种so文件的调用方法及装置 | |
CN104503745B (zh) | 一种生成应用渠道包的方法和装置 | |
CN104040552B (zh) | 安全地分发软件的方法、处理器、计算设备及安全地存储和执行应用的系统 | |
US20180373848A1 (en) | A build system with plugins for encryption of application components | |
CN110321675B (zh) | 基于网页水印的生成、溯源方法及装置 | |
CN104424423B (zh) | 应用程序的权限确定方法和装置 | |
CN109547198A (zh) | 网络传输视频文件的方法与系统 | |
CN107103215A (zh) | 一种apk安装方法及装置 | |
CN102047239B (zh) | 定义、分发以及呈现设备体验 | |
CN108898008A (zh) | 应用程序的运行方法和装置 | |
CN109040134A (zh) | 一种信息加密的设计方法及相关装置 | |
CN107306254A (zh) | 基于双层加密的数字版权保护方法及系统 | |
CN110851682A (zh) | 文本反爬虫方法、服务器、显示终端 | |
CN108777685A (zh) | 用于处理信息的方法和装置 | |
CN107567625A (zh) | 组许可加密和解密 | |
US20140115056A1 (en) | Book thinning | |
CN108235067B (zh) | 一种视频流地址的鉴权方法及装置 | |
CN106941620B (zh) | 一种Flash资源加载方法及装置 | |
CN106156545B (zh) | 实现数字版权管理的方法、客户端及系统 | |
Roth | Breaking encryptions using GPU accelerated cloud instances | |
WO2018080491A1 (en) | Drm sharing and playback service specification selection | |
CN114615087B (zh) | 数据共享方法、装置、设备及介质 | |
CN110032832B (zh) | 一种Web应用程序的处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231123 Address after: Room 606-609, Compound Office Complex Building, No. 757, Dongfeng East Road, Yuexiu District, Guangzhou, Guangdong Province, 510699 Patentee after: China Southern Power Grid Internet Service Co.,Ltd. Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |