flash上传
Spark API 中所有的 Flash 接口需要 Flash 插件的版本在 10.1 以上才有效,使用前请确保 Flash 插件版本符合要求。
在上传视频的过程中,不用与 Spark 平台进行 HTTP 通信,使用 JavaScript 和 Spark 平台提供的 Flash 进行交互即可完成。关于如何在网页中嵌入 Flash 以及如何和 Flash 进行交互,请参阅附录 2。上传接口用到的所有 JavaScript 函数定义见下表:
函数定义 | 参数说明 |
---|---|
on_spark_selected_file(file_name, file_size) | file_name: 上传文件名 file_size: 上传的文件大小,单位字节 |
on_spark_upload_validated(status, videoid) | status: 验证结果 videoid: 视频 id |
on_spark_upload_progress(progress) | progress: 上传进度。正确时,0~100 之间的整 数,包括 0 和 100;错误时,返回-1. |
网页嵌入 Spark 平台提供的上传 Flash 时,需要传递下列参数:
Flash参数(flashvars) | 说明 |
---|---|
progress_interval | 回调进度函数的时间间隔,默认 1 秒 |
notify_url | 视频处理完毕后的通知地址 |
上传文件的过程一共分为三步:
第一步,选择文件。
Spark 平台提供一个透明的 Flash 进行文件上传,地址如下:
https://p.bokecc.com/flash/api/uploader.swf
由于它是透明的,所以可以置于任何一个 HTML 元素的上方而不影响的页面视觉效果。上传文件时,必须通过点击到该 Flash 从而打开浏览对话框进行文件选择。 文件选择成功后,Flash 会调用页面中的on_spark_selected_file 函数,页面可以选择合适的方式处理该事件。
第二步,验证。
当用户选择文件后,需将下面的参数按照 THQS 算法处理后传递给 Flash 的 start_upload 函数后,才能开始上传流程。首先要进行参数和权限的验证,通过 后才开始文件上传。
参数 | 说明 |
---|---|
userid | 用户 id,不可为空 |
title | 视频标题,若为空,则采用去后缀文件名作为 title |
description | 视频简介,可以为空 |
tag | 视频标签,可以为空 |
categoryid | 视频子分类 id,可选参数 |
验证完成后,Flash 会调用 on_spark_upload_validated 函数传递验证结果以及视频 id。验证状态码的含义如下:
验证状态码 | 说明 |
---|---|
OK | 成功 |
NETWORK_ERROR | 网络错误 |
其它 | Spark API 错误码 |
第三步,文件上传。
文件开始上传后,Flash 会周期性调用 on_spark_upload_progress 函数来报告上传进度,间隔秒数由 progress_interval 参数指定。如果上传的进度为负数, 则说明发生网络错误,上传中断。返回 100 则表示上传成功。当返回 100 或者 -1 后,Flash 就不再调用该函数了。