金山魔方是一个多媒体能力提供平台,通过统一接入API、统一鉴权、统一计费等多种手段,降低客户接入多媒体处理能力的代价,提供多媒体能力供应商的效率
SDK在使用时需要用token进行鉴权后方可使用,token申请方式见接入步骤部分;
token与应用包名为一一对应的关系;
鉴权错误码见:https://github.com/ksvcmc/KMCAgoraVRTC_Android/wiki/auth_error
- app:示例工程
- libs: 魔方sdk包 libkmcshortvideo.jar,以及厂家sdk包
注: demo工程使用软链接引用libs目录,对于windows平台做Android开发的用户,需要手动将libs目录拷贝到demo目录下。
引入目标库, 将libs目录下的库文件引入到目标工程中并添加依赖。
可参考下述配置方式(以Android Studio为例):
-
推荐直接使用gradle方式集成:
allprojects { repositories { jcenter() } dependencies { compile 'com.ksyun.mc:KMCShortVideo:1.0.1' }
-
手动下载集成 将libs目录copy到目标工程的根目录下; 修改目标工程的build.gradle文件,配置jniLibs路径:
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
- KMCMaterial 素材类(主题、音乐、滤镜)
- KMCShortVideo为短视频编辑类
- KMCAuthManager 提供鉴权功能
- KMCMaterialManager 提供素材列表查下、素材下载等功能
- 鉴权
本sdk包采用鉴权加密方式,需要通过商务渠道拿到授权的token信息,方可以使用,具体请咨询商务。
鉴权函数如下,其中auth为ak信息,date为过期时间。
/**
* @param context
* @param auth token
* @param listener 注册结果的回调
*/
void authorize(Context context, String token, AuthResultListener listener);
- 初始化
/**
* init the sdk with activity
* this function load the sdk ,so must be called before setContentView
*/
void init(Activity activity);
- release
/**
* release
* this function should only be called when you don't want to use sdk anymore
*/
void release();
- attachWindow
/**
* attach window
* @param window 用于预览的窗口
* @param videoConfig 视频参数
* @param audioConfig 音频参数
* @return true if success
*/
boolean attachWindow(NvsLiveWindow window, KMCVideoConfig videoConfig,
KMCAudioConfig audioConfig);
- insertVideoClip
/**
* insert video or photo at given index
*/
boolean insertVideoClip(String filePath, int index)
- removeVideoClip
boolean removeVideoClip(int index)
- removeAllVideoClips
boolean removeAllVideoClips()
- play
/**
* play the video from startTime to endTime
*/
void play(long startTime, long endTime)
- stop
/**
* stop
*/
void stop()
- seekTo
/**
* seek to time, 单位微秒
*/
void seekTo(long time)
- getDuration
/**
* 获取视频长度, 单位微秒
*/
long getDuration(long time)
- getCurrentPlaybackTime
/**
* 获取当前播放时间,单位微秒
*/
long getCurrentPlaybackTime(long time)
- getState
/** get sdk state
* STATE_STOPPED STATE_PLAYBACK STATE_SEEKING STATE_COMPILE
*/
int getState()
- 应用素材 素材下载完成后,然后调用KMCShortVideo的applyMaterial即可将素材应用于短视频
/**
激活素材
@param material 需要展示的素材
*/
void applyMaterial(KMCArMaterial material);
- 修改封面文案 当应用了主题,且主题封面中有文字的时候,可以修改封面文案
/**
* 修改主题封面
*/
void setThemeTitleCaptionText(String text);
- getTrimIn
/**
* 获取裁剪起始点(单位微秒)
*/
long getTrimIn();
- getTrimOut
/**
* 获取裁剪终点(单位微秒)
*/
long getTrimOut();
- changeTrimInPoint
/**
* 设置裁剪起始点(单位微秒)
*/
void changeTrimInPoint(int index, long trimIn);
- changeTrimOutPoint
/**
* 设置裁剪终点(单位微秒)
*/
void changeTrimoutPoint(int index, long trimOut);
- getSpeed
/**
* 获取的播放速度
* 默认值为1,表示按正常速度播放;小于1的值表示慢放;大于1的值表示快放
*/
double getSpeed(int index);
- changeSpeed
/**
* 设置播放速度
*/
void changeSpeed(int index, double speed);
- getRotation
/**
* 获取视频旋转角度角度,默认值为0
*/
double getRotation(int index);
- changeRotation
/**
* 设置旋转角度
*/
void changeRotation(int index, double rotate);
- getSaturation
/**
* 饱和度
* 默认值为1,取值范围0-10
*/
double getSaturation(int index);
- changeSaturation
/**
* 设置饱和度
*/
void changeSaturation(int index, double saturation);
- getContrast
/**
* 对比度
* 默认值为1,取值范围0-10
*/
double getContrast(int index);
- changeContrast
/**
* 设置对比度
*/
void changeContrast(int index, double contrast);
- getBrightness
/**
* 亮度
* 默认值为1,取值范围0-10
*/
double getContrast(int index);
- getBrightness
/**
* 设置亮度
*/
void changeBrightness(int index, double bright);
- compile
/**
* compile
* @param startTime 开始时间。startTime取值范围在[0,timeline.duration - 1],传入其他值无效。
* @param endTime 结束时间。endTime取值范围在(startTime,timeline.duration],同样传入其他值无效
* @param outputFilePath 生成输出的文件路径
* @param videoResolutionGrade 生成文件输出的视频分辨率
* @param videoBitrateGrade 生成文件输出的视频码率
* @param flags 生成文件输出的特殊标志,如果没有特殊需求,请填写0
* return 返回true,则启动打包成功;false,则打包启动失败
* 注意:生成文件是异步操作
*/
boolean compile(long startTime,
long endTime,
String outputFilePath,
int videoResolutionGrade,
int videoBitrateGrade,
int flags)
- getVideoConfig
/**
* 获取视频的参数
*/
KMCVideoConfig getVideoConfig(String filePath);
- getAudioConfig
/**
* 获取视频的参数
*/
KMCAudioConfig getAudioConfig(String filePath);
- 拉取素材列表息 客户可以在控制台把贴纸放入一个group里面,sdk通过groupID进行拉取,相关函数为:
void fetchMaterials(final Context context, final int materialType,
final FetchMaterialListener listener);
拉取成功后,资源索引文件,包括贴纸的下载地址,缩略图的下载地址,贴纸的手势ID,手势描述信息等,可以在此处设置UI相关信息。
- 查询贴纸是否已经下载到本地
boolean isMaterialDownloaded(KMCMaterial material);
- 下载素材 素材大小不固定,大的可能几M,小的可能几十K,相关函数:
void downloadMaterial(final Context context, final KMCMaterial material,
final DownloadMaterialListener listener);
1.登录金山云控制台,选择视频服务-金山魔方
4.待申请审核通过后,金山云注册时的邮箱会收到邮件及试用token。
6.参照文档和DEMO填写TOKEN,就可以Run通项目了。 7.试用中或试用结束后,有意愿购买该服务可以与我们的商务人员联系购买。 (商务Email:KSC-VBU-KMC@kingsoft.com)
主页:金山魔方
邮箱:ksc-vbu-kmc-dev@kingsoft.com
QQ讨论群:574179720 [视频云技术交流群]