SparkAPI_开发指南_v2.0.4

Similar documents
SparkAPI_开发指南_v2.1.3

SparkAPI_开发指南_v2.1.4.pages

SparkAPI_开发指南_v2.1.4.pages

SparkAPI_v2.3.1.pages

SparkAPI_v2.3.2.pages

南華大學數位論文

PlayerAPI_v1.0.0

PlayerAPI_v1.0.5.pages

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复

新美大酒店开放平台SDK(.NET版)使用说明.pages

目 录 API 接 口..3 相 关 说 明...3 系 统 参 数 说 明..3 返 回 参 数 说 明...3 接 口 说 明...4 视 频 管 理 视 频 上 传 初 始 化 (Web 方 式 ) 4 2. 视 频 上 传 (Web 方 式 ) 4 3. 视 频 断 点 续 传

17 Chapter Video/Audio API 17-1 <video> <audio> 17-2 <video> <audio>

获取 Access Token 1 基础概念 access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要妥善保存,access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新


一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

Microsoft Word - FPKLSC_21.docx

「西醫基層總額支付委員會《第28次委員會議紀錄

2 Requirements Documentation Doc Name Doc No. 1.0 Version No. Total Page Generated By V6.0.0 Generated Date 2011/10/21 Checked By Checked Date 2011/10

無障礙網頁開發規範二版(草案)

保母人員丙級應檢資料第二部份 doc

(Microsoft Word - \261M\303D\263\370\247i\247\3572.doc)

《將進酒》

河 南 蓝 皮 书 文 化 (2008) 网 络 文 学 主 要 是 指 在 网 上 原 创 的 文 学 作 品 作 为 网 络 文 化 的 主 力 部 分, 网 络 文 学 的 发 展 在 近 年 来 势 不 可 挡 作 为 凭 借 新 兴 媒 介 兴 起 的 文 学, 网 络 文 学 与 传 统

21 flash

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

59 1 CSpace 2 CSpace CSpace URL CSpace 1 CSpace URL 2 Lucene 3 ID 4 ID Web 1. 2 CSpace LireSolr 3 LireSolr 3 Web LireSolr ID

手册 doc

停止混流接口 请注意 : 该功能需要联系 ZEGO 技术支持开通 1 接口调用说明 http 请求方式 : POST/FORM, 需使用 https 正式环境地址 access_token=access_token (http

标题

Microsoft Word - ch02.doc

2 中 国 农 业 资 源 与 区 划 2016 年 可, 有 效 减 少 确 定 中 存 在 的 主 观 性 和 人 情 倾 向 三 要 健 全 精 准 扶 贫 大 数 据 平 台 2016 年, 全 国 将 建 设 扶 贫 开 发 大 数 据 平 台, 各 地 要 在 精 准 识 别 的 基 础

05 01 accordion UI containers 03 Accordion accordion UI accordion 54

關於本書 l 3 PhoneGap Appcelerator Titanium Sencha Touch (wrapper framework) Native App PhoneGap Build Native App Hybrid App Java Objective-C Android SDK

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

Microsoft Word - PHP7Ch01.docx

第2章 数据类型、常量与变量

PlayerAPI_v1.0.6副本

ASP 電子商務網頁設計

2 SGML, XML Document Traditional WYSIWYG Document Content Presentation Content Presentation Structure Structure? XML/SGML 3 2 SGML SGML Standard Gener

Microsoft PowerPoint ShengYang Presentation Slides_240609

目录 1. 视频上传接口 ( 已集成在 SDK 中 ) 请求上传 web 端请求上传 上传 通知上传完成 取消上传 获取视频状态 获取视频信息

天仁期末個人報告1.PDF

乐视云视频发行平台 操作手册 V1.1

Adobe AIR 安全性

Information for consent

Microsoft Word - 澎湖田調報告-宏達組9804.doc

平 凡 足 迹 李 本 川 作 者 为 中 国 科 学 院 海 洋 研 究 所 研 究 员,1935 年 生, 山 东 荣 成 人 我 今 年 63 岁 了 大 前 年 丈 夫 和 儿 子 在 一 个 月 内 先 后 离 开 了 人 世, 女 儿 又 已 出 嫁, 现 在 是 孑 然 一 身 我 是

今天 年春季号 总 92 期

*

( ) / / / / / / /

(Microsoft Word - 8\244T\244\362\277\337\272]\244W\265L\246W.doc)

Microsoft Word - 專家本色 doc


但, 你 应 该 听 过 我 们 走 在 大 路 上 这 首 歌, 或 许 还 知 道 革 命 人 永 远 是 年 轻 那 支 歌 ; 并 且, 几 乎 可 以 肯 定, 你 在 戴 红 领 巾 的 那 阵, 必 然 唱 过 牛 儿 还 在 山 坡 吃 草, 放 牛 的 却 不 知 道 哪 儿 去

2 临 终 助 念 答 问 序 临 终 关 怀, 由 佛 门 净 宗 古 来 祖 师 大 德 提 倡 助 念 往 生, 现 今 已 渐 为 社 会 大 众 所 重 视, 在 台 湾, 台 大 长 庚 等 各 大 医 院, 也 都 设 有 助 念 室 ; 大 陆 上 许 多 道 场, 也 有 专 为

校园之星

<4D F736F F F696E74202D FA8BEA861B8EAB7BDBEE3A658BB50C0B3A5CE28B773A6CBA5AB29>


之 原 則 及 國 防 部 訂 頒 國 軍 列 管 國 有 不 動 產 提 供 非 軍 方 單 位 使 用 處 理 原 則 規 定 不 符, 仍 應 以 出 租 方 式 辦 理 惟 可 就 偏 遠 地 區 提 供 官 兵 金 融 水 電 服 務 使 用 部 分, 研 議 降 低 租 金 標 準, 報

chineseall

釋禪波羅蜜次第法門

证券代码: 证券简称:锦江股份 公告编号:【】

1700 装 卸 搬 运 7645 装 卸 搬 运 服 务 2100 建 筑 7410 工 程 服 务 11% 装 卸 搬 运 服 务, 是 指 使 用 装 卸 搬 运 工 具 或 者 人 力 畜 力 将 货 物 在 运 输 工 具 之 间 装 卸 现 场 之 间 或 者 运 输 工 具 与 装 卸

前 言 教 育 无 小 事, 它 成 就 着 学 生 的 未 来 作 为 教 师, 他 们 无 时 无 刻 不 在 关 注 着 学 生 的 成 长 学 生 的 未 来 学 生 就 像 一 朵 含 苞 待 放 的 花 朵, 需 要 老 师 们 的 细 心 呵 护, 给 学 生 需 要 的 东 西, 而

《盗墓笔记》 南派三叔/著

<CFFBB7D1D5DFD0D0CEAAD1A72E6D7073>

独立学院建设与发展


01

静态分析 投放文件 行为分析 互斥量 (Mutexes) 执行的命令 创建的服务 启动的服务 进程 cmd.exe PID: 2520, 上一级进程 PID: 2556 cmd.exe PID: 2604, 上一级进程 PID: 2520 访问的文件 C:\Users\test\AppData\Lo

Microsoft Word 養生與保健_中山大學_講義


萬里社區老人健康照護手冊

Microsoft Word - 強制汽車責任保險承保及理賠作業處理辦法 doc

Microsoft Word - 06.Understanding of Pregnancy and Birth.doc

(➂)11. 炎 炎 夏 日, 即 使 下 起 滂 沱 大 雨, 都 消 除 不 了 令 人 心 煩 的 暑 氣 這 句 話 主 要 想 表 達 什 麼? ➀ 夏 日 裡 經 常 下 著 滂 沱 大 雨, 令 人 心 煩 ➁ 下 著 滂 沱 大 雨 的 日 子, 可 以 消 除 暑 氣 ➂ 夏 日

範本檔

附 件 一 : 办 理 集 中 式 银 期 转 账 业 务 网 点 名 单 序 号 地 区 网 点 名 称 地 址 联 系 人 电 话 23 工 商 银 行 安 徽 省 铜 陵 百 大 支 行 铜 陵 市 长 江 东 路 50 号 鲁 桂 珍 工 商 银 行 安 徽

2. 二 年 級 吳 毓 秀 老 師 : 感 謝 午 餐 公 司 平 時 均 能 準 時 送 餐, 但 希 望 能 不 要 使 用 加 工 品, 且 學 生 反 映 希 望 能 多 加 蛋 品 的 食 物 3. 三 年 級 柯 阿 青 老 師 : 雞 肉 有 血 水 味, 請 午 餐 公 司 能 調

高雄市立五福國民中學九十四學年度第一學期第三次段考二年級本國語文學習領域試題卷

人 物 春 秋 杨 永 泰 将 其 削 藩 策 略 概 括 为 : 以 经 济 方 法 瓦 解 冯 玉 祥 的 第 二 集 团 军, 以 政 治 方 法 解 决 阎 锡 山 的 第 3 集 团 军, 以 军 事 方 法 解 决 李 宗 仁 的 第 四 集 团 军, 以 外 交 方 法 对 付 张 学

台北老爺校外實地參訪結案報告


糖尿病食譜



,,,,,,, (,, ),,,,,,,,,,,,,,, ,,, 4 11,, ( ),,,, ( ), :, ( ),,, 1995, 66 ; ( ),, 1996, , 3-4,,


2002 4,,, 1941,,,,,,,,,,,,,,,,,, : ;:, 1991,

/

1. 2. Flex Adobe 3.

TWLOM060929

变 量 的 主 要 作 用 是 存 取 数 据 提 供 存 放 信 息 的 容 器 对 于 变 量 必 须 明 确 变 量 的 命 名 变 量 的 类 型 变 量 的 声 明 及 其 变 量 的 作 用 域 JavaScript 是 一 种 弱 类 型 语 言, 也 就 是 说, 在 声 明 变 量

使用Cassandra和Spark 2.0实现Rest API服务

2005 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD UNIX X/Open Company, Ltd. / Sun Sun Microsystems Su

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc

火车浏览器脚本制作教程

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工

( CIP ) /. :, 2003 ISBN I247.5 CIP (2003) : : : ( 310 ) : : : mm mm 1/ 32 : : : :1 - : ISBN :3

Microsoft Word 電腦軟體設計.doc

Transcription:

Spark API 开发指南 版本 : 2.0.4 日期 : 2013-02-25 北京梦之窗数码科技有限公司

目录 1. 概述!... 1 2. 通信约定!... 1 2.1 Http 方法!... 1 2.2 返回格式!... 1 2.3 编码格式!... 1 2.4 加密!... 1 2.5 接 口访问次数限制!... 2 3. Http 接 口!... 2 3.1 获取 用户信息!... 2 3.2 获取视频信息!... 2 3.3 批量获取视频信息!... 3 3.4 获取视频播放代码!... 5 3.5 编辑视频信息!... 6 3.6 删除视频!... 7 3.7 获取视频分类!... 7 4. Flash 接 口!... 8 4.1 视频上传!... 8 4.2 视频播放!... 10 附录 1. Http 通信加密算法!... 12 附录 2. Flash 和 Javascript 交互!... 12

1. 概述 利 用 Spark API 可以与 CC 视频 Spark 云进 行对接, 使 用 Spark 云的主要视频功能 当前 Spark API 的版本号为 2.0, 具有上传 播放 获取视频信息 获取 用户信息 删除视频 获取视频分类等接 口 目前 Spark API 仅对合作 方开启, 如果您有使 用的需求, 请通过 CC 视频后台申请 API Key, 通过审核后才能使 用 Spark API 2. 通信约定 Spark API 的远程通信接 口基于 Http 协议, 并有以下约定 : 2.1 Http 方法! 所有接 口采 用 GET 请求 2.2 返回格式 接 口的返回格式包括 XML 格式和 JSON 格式, 编码均为 UTF-8 对于不同的接 口, 正确的返回结果的格式会在每个接 口中单独定义, 错误的返回结果具有统 一的形式, 如下所 示 : <error>error_code</error> error : ERROR_CODE 实际中, 下表中的某 一个具体的错误码会替换掉上 面的 ERROR_CODE: 错误码 INVALID_REQUEST SPACE_NOT_ENOUGH SERVICE_EXPIRED PROCESS_FAIL TOO_MANY_REQUEST PERMISSION_DENY 说明 用户输 入错误 用户剩余空间不 足 用户服务已经过期服务器处理失败访问过于频繁 用户服务 无权限 2.3 编码格式 Spark API 只接受 UTF-8 格式编码的信息, 返回的数据也都是 UTF-8 编码的 当需要通过 GET 请求传递时,QueryString 里 面的 value 值都需要进 行 URL Encode 之后, 再进 行传递 2.4 加密 所有的 HTTP 通信都是加密的, 加密的核 心思想是将原始的 QueryString 转换为和请求时间相关的 HashedQueryString, 我们称这个加密算法为 THQS 算法 关于 THQS 算法的细节请参 见附录 1 第 1 页共 13 页

2.5 接 口访问次数限制 当某 一个接 口的访问频率在 一分钟之内超过 100 次的时候, 该 用户的 API 功能将被禁 用, 之后所有请求都将失效 如果上述阈值 无法满 足您的正常需求的时候, 可以联系 CC 客服申请提升 API 的请求频率 3. Http 接 口 3.1 获取 用户信息 通过该接 口可以获取指定 用户的账户信息, 地址为 : http://spark.bokecc.com/api/user 需要传递以下 : userid format 说明 用户 id, 不可为空 返回格式,xml 或 json Xml 格式的返回信息如下 : <user> <account>test@test.com</account> <version><![cdata[ 试 用版 ]]></version> <expired>2011-06-06</expired> <space> <total>2</total> <used>0.1</used> </space> <traffic> <total>5</total> <used>0.2</used> </traffic> </user> Json 格式的返回信息如下 : "user": "account":"test@test.com", "version":" 试 用版 ", "expired":"2011-06-06", "space": "total":2, "used":0.1,, "traffic": "total":5, "used":0.2, 3.2 获取视频信息 通过该接 口可以获取指定 用户的有效视频的信息, 地址为 : 第 2 页共 13 页

http://spark.bokecc.com/api/video 需要传递以下 : userid videoid format 说明 用户 id, 不可为空视频 id, 不可为空返回格式,xml 或 json Xml 格式的返回信息如下 : <video> <id>01234567</id> <title><![cdata[ 视频标题 ]]></title> <desp><![cdata[ 视频描述 ]]></desp> <tags><![cdata[ 标签 1 标签 2 标签 3]]></tags> <duration>314</duration> <category>12345</category> <image>http://image.bokecc.com/abc.jpg</image> <imageindex>1</imageindex> <image-alternate> <index>1</index> <url>http://image.bokecc.com/abc1.jpg</url> </image-alternate> <image-alternate> <index>2</index> <url>http://image.bokecc.com/abc2.jpg</url> </image-alternate>... </video> Json 格式的返回信息如下 : "video": "id":"01234567", "title":" 视频标题 ", "desp":" 视频描述 ", "tags":" 标签 1 标签 2 标签 3", "duration":"12345", "category":"12345", "image":"http://image.bokecc.com/abc.jpg", "imageindex":1, "image- alternate":[ "index":1, "url":"http://image.bokecc.com/abc1.jpg",... ] 3.3 批量获取视频信息 通过该接 口可以获取指定 用户的 一批有效视频 ( 不包括删除 正在处理的视频 ) 的信息, 地址为 : 第 3 页共 13 页

http://spark.bokecc.com/api/videos 需要传递以下 : userid videoid_from videoid_to 说明 用户 id, 不可为空起始 videoid, 若为空, 则从上传的第 一个视频开始终 止 videoid, 若为空, 则到最后 一个上传的视频 num_per_page 返回信息时, 每 页包含的视频个数注 : 阈值为 1~100 page format 当前 页码 返回格式,xml 或 json Xml 格式的返回信息如下 : <videos> <total>100</total> <video> <id>01234567</id> <title><![cdata[video Title]]></title> <desp><![cdata[video Description]]></desp> <tags><![cdata[tag1 tag2 tag3]]></tags> <duration>314</duration> <category>12345</category> <image>http://image.bokecc.com/abc.jpg</image> <imageindex>1</imageindex> <image-alternate> <index>1</index> <url>http://image.bokecc.com/abc1.jpg</url> </image-alternate> <image-alternate> <index>2</index> <url>http://image.bokecc.com/abc2.jpg</url> </image-alternate>... </video>... </videos> Json 格式的返回信息如下 : 第 4 页共 13 页

! Spark API 开发指南 "videos": "total":100, "video":[ "id":"01234567", "title":"video Title", "desp":"video Description", "tags":"tag1 tag2 tag3", "duration":"12345", "category":"12345", "image":"http://image.bokecc.com/abc.jpg", "imageindex":1, "image-alternate":[ "index":1, "url":"http://image.bokecc.com/abc1.jpg", ], ] 3.4 获取视频播放代码通过该接 口可以获取指定视频的视频播放 html 代码段, 地址为 : http://spark.bokecc.com/api/video/playcode 需要传递以下 : videoid playerid player_width player_height auto_play format 说明视频 id, 不可为空播放器 id, 若为空则返回默认播放器播放器宽度, 单位 px 播放器 高度, 单位 px 是否 自动播放,true 或 false 返回格式,xml 或 json Xml 格式的返回信息如下 : <video> <playcode> <![CDATA[<script src='http://union.bokecc.com/player? vid=96479767c315e6a9&siteid=1936d297411c3a27&autostart=false&width=600&height=490&playerid =6ED7421AB96B522E&playertype=1'type='text/javascript'></script>]]> </playcode> </video> 第 5 页共 13 页

Json 格式的返回信息如下 : "video": "playcode":"<script src='http://union.bokecc.com/player? vid=96479767c315e6a9&siteid=1936d297411c3a27&autostart=false&width=600&height=490&playerid =6ED7421AB96B522E&playertype=1'type='text/javascript'></script>" 3.5 编辑视频信息通过该接 口可以编辑指定视频的信息, 地址为 : http://spark.bokecc.com/api/video/update 需要传递以下 : videoid title tag description categoryid playurl imageindex format 说明 视频 id, 不可为空 视频标题 视频标签 视频描述 视频 子分类 id 视频播放 页 面地址, 如果不编辑播放地址, 请勿加 入此 视频封 面截图序号, 如果不编辑封 面截图, 请勿加 入此注 : 只可编辑正常可播放状态的视频截图 返回格式,xml 或 json Xml 格式的返回信息如下 : <video> <id>01234567</id> <title><![cdata[video Title]]></title> <desp><![cdata[video Description]]></desp> <tags><![cdata[tag1 tag2 tag3]]></tags> <category>12345</category> <playurl>http://xxxx/1.html</playurl> <imageindex>1</imageindex> </video> Json 格式的返回信息如下 : 第 6 页共 13 页

! Spark API 开发指南 "video": "id":"01234567", "title":"video Title", "desp":"video Description", "tags":"tag1 tag2 tag3", "category":"12345", "playurl":"http://xxxx/1.html", "imageindex":1 3.6 删除视频通过该接 口可以删除指定视频的信息, 地址为 : http://spark.bokecc.com/api/video/delete 需要传递以下 : videoid format 说明 视频 id, 不可为空 返回格式,xml 或 json Xml 格式的返回信息如下 : <video>ok</video> Json 格式的返回信息如下 : "result":"ok" 3.7 获取视频分类通过该接 口可以获取指定 用户创建的全部视频分类, 地址为 : http://spark.bokecc.com/api/video/category 需要传递以下 : userid format 说明 用户 id, 不可为空 返回格式,xml 或 json 注 : 返回结果中的 level 包括 BASIC 和 PREMIUM,BASIC 中只包含 一个默认 父分类, 无法创建 自定义 父分类, PREMIUM 版本中包含 用户创建的 父分类 Xml 格式的返回信息如下 : 第 7 页共 13 页

<video> <level>basic</level> <category> <id>123</id> <name><![cdata[category1]]></name> <sub-category> <id>456</id> <name><![cdata[category1]]></name> <sub-category>... </category>... </video> Json 格式的返回信息如下 : "video": "level":"premium", "category":[ "id":123, "name":"category1", "sub-category":[ "id":456, "name":"sub category1",... ],... ] 4. Flash 接 口 Spark API 中所有的 Flash 接 口需要 Flash 插件的版本在 10.1 以上才有效, 使 用前请确保 Flash 插件版本符合要求 4.1 视频上传 在上传视频的过程中, 不 用与 Spark 平台进 行 Http 通信, 使 用 javascript 和 Spark 提供的 Flash 进 行交互即可完成 关于如何在 网 页中嵌 入 Flash 以及如何和 Flash 进 行交互, 请参阅附录 2 上传接 口 用到的所有 javascript 函数定义 见下表 : 函数定义 on_spark_selected_file(file_name, file_size) on_spark_upload_validated(status, videoid) on_spark_upload_progress(progress) 说明 file_name: 上传 文件名 file_size: 上传的 文件 大 小, 单位字节 status: 验证结果 videoid: 视频 id progress: 上传进度 正确时,0~100 之间的整数, 包括 0 和 100; 错误时, 返回 -1. 网 页嵌 入 Spark 提供的上传 Flash 时, 需要传递下列 : 第 8 页共 13 页

Flash (flashvars) progress_interval notify_url 说明 回调进度函数的时间间隔, 默认 1 秒 视频处理完毕后的通知地址 上传 文件的过程 一共分为四步 : 第 一步, 选择 文件 Spark 提供 一个透明的 Flash 进 行 文件上传, 地址如下 : http://union.bokecc.com/flash/api/uploader.swf 由于它是透明的, 所以可以置于任何 一个 html 元素的上 方 而不影响的 页 面视觉效果 上传 文件时, 必须通过点击到该 flash 从 而打开浏览对话框进 行 文件选择 文件选择成功后,Flash 会调 用 页 面中的 on_spark_selected_file 函数, 页 面可以选择合适的 方式处理该事件 第 二步, 验证 当 用户选择 文件后, 需将下 面的按照 THQS 算法处理后传递给 Flash 的 start_upload 函数后, 才能开始上传流程 首先要进 行和权限的验证, 通过后才开始 文件上传 userid title description tag 说明 用户 id, 不可为空视频标题, 若为空, 则采 用去后缀 文件名作为 title 视频简介, 可以为空视频标签, 可以为空 验证完成后,Flash 会调 用 on_spark_upload_validated 函数传递验证结果以及视频 id 验证状态码的含义如下 : 验证状态码 OK NETWORK_ERROR 其它 说明成功 网络错误 Spark API 错误码 第三步, 文件上传 文件开始上传后,Flash 会周期性调 用 on_spark_upload_progress 函数来报告上传进度, 间隔秒数由 progress_interval 指定 如果上传的进度为负数, 则说明发 生 网络错误, 上传中断 返回 100 则表 示上传成功 当返回 100 或者 -1 后,Flash 就不再调 用该函数了 第四步, 回调 当 Spark 处理完毕视频后 ( 上传 转码 审核都完成后 ), 会通过 Http 的 GET 方式通知你的 网站 该地址由 notify_url 指定 通知时会以 THQS 方式携带以下 : 第 9 页共 13 页

videoid status 说明 视频 id,16 位 hex 字符串 视频状态 OK 表 示视频处理成功, FAIL 表 示视频处理失败 duration 片 长 ( 单位 : 秒 ) image 视频截图地址 视频处理失败有多种情况, 例如视频 文件异常 视频内容违规等等 <result>ok</result> 当 notify_url 指定的接 口返回上述 xml 时,Spark 会认为 网站已经成功接收到了回调信息, 不再进 行重试 返回其它任何内容,Spark 视频平台会进 行重试, 重试的间隔会随着重试次数的增 大 而增 大 若重试 7 次后, 依然没有成功, 则不再进 行通知 因此,Spark 视频平台最多通知 8 次 这 8 次的通知时间距第 一次的通知时间的差分别为 : [0,15s, 1m, 4m, 16m, 1h4m, 4h16m, 17h4m] 4.2 视频播放 视频播放是通过在 网 页中嵌 入 Spark 平台提供的 flash 播放器来实现的, 地址如下 : http://union.bokecc.com/flash/player.swf 需要给播放器传递的如下 : userid videoid mode autostart jscontrol 说明 用户 id, 不可为空视频 id, 不可为空播放 方式, 在 目前版本中必须传递该, 取值只能为 api 是否 自动播放, 默认 true 是否启 用 js 控制, 默认为 false 同时, 播放器还会在以下事件发 生时调 用相应的 js 函数 : Javascript 函数 on_spark_player_ready on_spark_player_start on_spark_player_pause on_spark_player_resume on_spark_player_stop 事件播放器加载完毕开始播放暂停播放暂停后继续播放播放停 止 页 面也可以调 用 Flash 提供的接 口, 来控制播放的过程 : 第 10 页共 13 页

Flash 函数 spark_player_start spark_player_pause spark_player_resume 播放器动作开始播放暂停播放恢复播放 spark_player_seek 拖动播放 ( 单位 : 秒 ) spark_player_duration 获取视频 片 长 ( 单位 : 秒 ) spark_player_position 获取当前播放时间 ( 单位 : 秒 ) 第 11 页共 13 页

附录 1. Http 通信加密算法 当需要和 Spark 系统进 行 Http 通信时, 需要将原始的 Query String 转换为和请求时刻相关的 Hashed Query String 后再通过 GET 方法请求 Spark 接 口 为了描述的 方便, 我们将 QueryString 转换为 HashQueryString 的算法称为 THQS 算法 在描述详细的算法流程之前, 我们先介绍 一下 Unix 时间戳的概念 Unix 时间戳, 即该时间到 1970 年 1 月 1 日 (UTC/GMT 的午夜 ) 之间的秒数 例如, 北京时间 2010 年 12 月 9 日 15 点 23 分 12 秒的 Unix 时间戳为 1291879392 THQS 算法 假设原来的 QueryString 为 q, 通过以下 4 个步骤, 即可得到最终 用于通信的 HashedQueryString: 1. 对于 q 中的每个键值对按照键的字 母顺序升序排序, 得到排序后的请求字符串 qs; 2. 加 入当前时间的 Unix 时间戳和 Spark 帐号对应的 API Key 值, 得到散列前的字符串 qf: qf qs&time=12345&salt=asdf1234 3. 计算得到 qf 的 md5 值, 假设为 abcdefg hash md5(qf) 4. 最终的 HashedQueryString 为 : hqs qs&time=12345&hash=abcdefg 用 hqs 代替 q 进 行 Http 通信 下 面举 一个例 子说明计算过程 假设 用户从 Spark 获取到的 API Key 值是 asdf1234, 当前时间为 2010 年 12 月 9 日 15 点 23 分 12 秒, 原始的 QueryString 是 name=harry&level=top&salary=1000 第 一步, 将上述 QueryString 按照字 母顺序进 行升序排序, 结果是 level=top&name=harry&salary=1000 第 二步, 附加 time 值和 salt 值, 得到取 hash 前的字符串 level=top&name=harry&salary=1000&time=1291879392&salt=asdf1234 第三步, 对上述字符串取 md5 值 hash=bf04a55b30cff562f7add9f054ab7ffb 因此, 最终进 行 Http 通信的字符串为 level=top&name=harry&salary=1000&time=1291879392&hash=bf04a55b30cff562f7add9f054ab7ffb 附录 2. Flash 和 Javascript 交互 Spark 的通信模式中, 有若干种 方式需要通过与 页 面中嵌 入的 Flash 交互完成 Flash 和 页 面有多种 方式可以交互, 为了保证 Spark 提供的 flash 能够在各种环境下都能正常 工作, 推荐采 用以下 方式进 行处理 首先, 需要 用将 swf 文件嵌 入到 网 页中, 推荐采 用 swfobject 1.5 版本 将 swfobject.js 添加到 网 页中后, 用以下 js 语句将 swf 嵌 入到 网 页中, 第 12 页共 13 页

<script type="text/javascript"> var swfobj=new SWFObject('http://xxx/xx.swf', 'swfname', '80', '80', '8'); swfobj.addvariable('title','test');! swfobj.addvariable('number', 123); swfobj.addparam('allowfullscreen','true'); swfobj.addparam('allowscriptaccess','always'); swfobj.addparam('wmode','transparent'); swfobj.write('divid'); </script> 其次, 调 用 Flash 中的函数的时候, 如果 Flash 提供的函数名叫 func, 而需要传递的是 param 的话, 那么下 面这句就可以调 用该函数 swfname["func"](param); 其中,swfname 是嵌 入 Flash 的 id 值 第 13 页共 13 页