MediaDownloader
2016-08-24 18:27:26 0 举报
登录查看完整内容
为你推荐
查看更多
抱歉,暂无相关内容
MediaDownloader是一个功能强大的下载工具,专为用户设计用于从各种媒体平台下载音频、视频和图像文件。它支持多种下载格式,包括MP3、MP4、AVI、JPG等,并具有高速下载功能,能够在短时间内完成大文件的下载。此外,MediaDownloader还具有智能识别功能,可以自动检测网页中的媒体链接并进行下载。它还提供了简单易用的界面,使用户可以轻松管理和查看下载进度。无论是用于个人使用还是商业用途,MediaDownloader都是一个理想的选择。
作者其他创作
大纲/内容
否
postMessage
ts下载完成
请求buffer填充未满
是否已存在当前下载任务中
内存 copy
createDLTask
是
m3u8
查询到是否有数据
当前下载任务
保存TS序列号
是否全部的TS都已经下载
节点存在
eraseDLTask
不命中
findFirstHole
是否需要继续下载
DLManager
- DLManagerListener:_managerListener
+ open+ read+ seek+ close+ start+ pause+ resume+ restart+ stop
设置分片结束点
else
当前下载任务数是否饱和
requestBuffer
MediaDownloader
- DLmanager:_dlManager
+ start+ pause+ reset+ deleteFile+ setSaveFilePath+ stop
DLAssetWriter
失败
isUsedByDownloader && !from_ffmpeg
获取下一个TS的URL
是否有数据需要下载
读取文件
有
next DLManager
需要添加下载任务
MessageLoop
- Thread
与判定的位置是否交叉
节点不存在
请求buffer填充满
::google::protobuf::MessageLite
!from_ffmpeg && isInvalid
数据在内存中
DLIndexStorage
+ attribute1:type = defaultValue+ attribute2:type- attribute3:type
+ operation1(params):returnType- operation2(params)- operation3()
DLManagerListener
+ onInfo+ onPlayableRanges
数据在文件中
new DLManager
DLTaskMessage
+ DLTaskMessageType:_type+ DLTaskStateType:_state+ string:_index+ size_t:_bufferSize+ int64_t:_position+ void* :_buf
是否已存在本地
已有的下载任务
不超时
DLInfoMsgComplete
DLTask
- DLTaskListener- struct ns_mgr
+ start+ stop+ pause+ isPaused+ setOnlyDownloadBytesFromCurrentPosition+ requestSocketFd+ requestMoreBuffer+ setListener+ curReadPosition+ readStartPosition+ readEndPosition
URLProtocol
+ url_open+ url_read+ url_seek+ url_close
BufferNode
+ position+ bufferSize+ DLTaskMessage
非 m3u8
DLIndex
+ syncToStorage+ syncFromStorage
文件有未下载数据
下载任务数是否在配置数量之内
KEY_AES_128
match DLManager
_readPosition
_curReadIndex
命中
DLTaskListener
+ onDLTaskMessage+ requestSockFd
拆分当前已有的下载任务
isUsedByFFmpeg && from_ffmpeg
下载任务是否达到配置数
成功
计算节点的读取位置
URL hash
下载出错
返回出错
是否分片任务
_listener
0 条评论
回复 删除
下一页