AppSDK(Android)
  • 帮助与文档 存储 AppSDK(Android)

    一、概述

    此文档旨在指导Android应用开发者,如何在应用中植入media_upload_sdk (以下简称SDK),为开发者提供简单、方便的接口, 帮助开发者实现Android平台视频上传功能。

    SDK提供了多层面的调用方式,开发者可根据自己的需求定制化开发上传界面,也可使用默认界面实现快速开发。

    SDK基于jar包及so动态库集成方案,使用者需引入media_upload_demo工程中的libs/media_upload_sdk.jar。该jar包是已经混淆过的,在加入第三方应用后请不要再混淆。

    media_upload_demo是一个Android示例工程,可以帮助开发者了解如何使用SDK相关功能和接口使用。

    二、阅读对象

    本文档面向所有使用该SDK的开发人员、测试人员、合作伙伴以及对此感兴趣的其他人员。

    三、SDK 功能说明

    SDK以开发者为中心,以快捷创建媒体播放为目标,具有以下特性:

    1. 支持mp4、3pg等视频格式资源

    2. 支持本地视频上传、录像上传

    四、使用说明

    4.1 环境准备

    1. 导入工程

    从 Eclipse 导入Android示例工程,里面只有一个示例窗体:主窗体MainActivity。

    2.权限设置

    在AndroidManifest.xml中做如下设置:

    
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    
    <uses-permission android:name="android.permission.INTERNET"/>
    
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
    
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" " />
                                        

    3.日志路径

    初始化成功后,sdk会启动写日志文件,用了记录各种事件、帮助开发人员分析问题。日志文件保存在扩展缓存目录下context.getExternalCacheDir(),例如我手机上的日志就保存在/storage/sdcard1/Android/data/com.pplive.upload.test/cache/下面。

    4.2 初始化

                                            
    UploadManager.getInstance().init(Context context,
    UpLoadManagerListener listener, String url, String cookie);
                                            
                                        

    参数listener为监听实例。

    tokenURL示例代码

    4.3 添加视频

                                            
    UploadManager.getInstance().addVideo(vinfo);
                                           
                                            

    其中vinfo是UploadManager.VideoInfo对象,表示待上传的视频文件信息。如果cookie为video-paramas,则需要设置vinfo的高宽、比特率。帧率、时长等属性。

    函数执行后会进行内部校验并回调到UpLoadManagerListener.onAddUploadTask(UploadInfo info, int state)

    回调参数中info表示上传信息。

    回调参数中state表示上传状态: 0表示成功, 1表示失败, 2表示已上传过。

    添加成功(state==0)后会立即上传,并且进行状态回调UpLoadManagerListener.onStateChange(final UploadInfo info)

    其中info.getProgress()是当前上传任务的进度。

    4.4 停止/暂停上传

                                            
    info.setState(UploadInfo.STATE_STOP);
    info.setStop(true);
    UploadManager.getInstance().updateUploadThread(info);
    UploadManager.getInstance().updateUpload(info);
                                            
                                        

    目前暂停上传和停止上传功能是一样,都是设置任务状态为停止,并停止内部上传线程。

    停止上传的视频进度会保存在服务器上,下次重新添加会向服务器请求该视频的上传进度,从断点处继续上传。

    五、监听接口定义

    以下是主要的接口定义及说明,完整的定义以实际代码为准,如有疑问可随时反馈。

    1.上传控制接口定义(见PPTVSdkMgr.java):

                                            
    public interface UpLoadManagerListener {
    public void onStateChange(UploadInfo info);//更新进度
    public void onUploadError(UploadInfo info);
    public void onUploadSuccess(UploadInfo info);
    public void onAddUploadTask(UploadInfo info, int state); }
    //0:成功, 1:失败, 2:已上传过
                                            
                                        
    • 文本导读:
    • 一、概述
    • 二、阅读对象
    • 三、SDK 功能说明
    • 四、使用说明
    • 五、监听接口定义
苏宁视频云服务