全部产品
云市场

视频录制

更新时间:2019-07-01 11:27:41

步骤1. SDK文件拷贝

  • 拷贝下图文件到工程环境。Snip20181025_2.png

步骤2. 拷贝业务代码文件

要拷贝的代码文件分3部分:

  • 整个工程依赖的基础代码和公有组件

    如图所示,您需要把以下红框里文件拷贝到工程中。 录制完整工程

文件 描述
AlivcBeaitufySettingsPanel文件夹 美颜组件
Categories文件夹 工程用到的分类集合
Config文件夹 工程配置集合
Helpers文件夹 帮助类集合
Utilites文件夹里的4个类 相关工具类

对于美颜组件,想要原有图标正确显示,需要拷入对应的图片资源,对应demo工程图片文件夹Assets.xcassets下的NewLive文件夹。另外美颜的文字显示是做了本地化的,默认是英文,想要显示中文,需要做本地化配置,然后拷入对应的字符。本地化字符文件路径为:根目录/demo/AliyunVideoClient_Entrance/Resources。

  • 短视频业务依赖的业务基础代码和公有组件

    如图所示,您需要把以下红框里文件拷贝到工程中。 录制完整拷贝

文件 描述
AlivcShortVideoCommonFile文件夹 整个短视频业务(基础版、标准版和专业版)依赖的公有组件集合。
Common文件夹 短视频专业版业务上的组件集合。
AlivcShortVideoFaceUnity文件夹 faceUnity高级美颜功能依赖的文件集合。
AlivcShortVideoResource文件夹 短视频业务的资源集合。
  • 删除不必要的文件

如图所示,删除红框中不必要的文件shouldDeleted

资源文件夹的引用方式是references方式,如下图: WX20181019-225713@2x.png

所以,请采用下图的方式将这些文件夹添加到工程: WX20181019-230720@2x.png

  • 视频录制本身的代码

    如图所示,您需要把以下红框里文件拷贝到工程中。 录制本身代码

    VideoRecord文件夹:视频录制具体的业务代码。

步骤3. 配置pch文件

添加以下引用到后缀名.pch的文件中:

  1. #import "AlivcMacro.h"
  2. #import "AlivcImage.h"

如果您的工程中没有后缀名.pch文件,可以将Demo中的PrefixHeader.pch文件拷贝到工程中。.pch文件中保留以上引用,TARGETS->Build Settings进行如图设置:WX20181020-002351@2x.png

Prefix Header中填入已加到工程内PrefixHeader.pch的路径$(SRCROOT)/自己的目录文件/PrefixHeader.pch

步骤4. 配置工程环境

  1. 开发者打开工程,选中目标target,依次选择General->Embededed Binaries,单击+号,单击Add Other…,导入alivcffmpeg.framework和AliyunVideoSDKPro.framework两个文件。

  2. 打开工程,选中目标target,依次选择General->Linked Frameworks And Libraries,单击+号,添加以下系统库:

    • libz.tbd
    • ImageIO.framework
    • CoreMedia.framework
    • CoreVideo.framework
    • VideoToolBox.framework
    • MediaPlayer.framework
    • OpenAL.framework
    • libc++.tbd
    • libsqlite3.tbd
    • libiconv.tbd

      截图如下:屏幕快照 2018-10-15 下午6.15.40.png

  3. 配置 Build Setting -- Build Options -- Enable Bitcode 选项为NO

  4. 配置 Build Setting -- Linking -- Other Linker Flags 添加 $(inherited)-ObjC选项。
  5. 配置info.Plist文件。

    打开工程的 info.Plist 文件,添加如下字段:

    • Privacy - Camera Usage Description
    • Privacy - Microphone Usage Description
    • Privacy - Photo Library Usage Description
    • Privacy - Photo Library Additions Usage Description
    • Privacy - Media Library Usage Description

    添加App Transport Security Settings,然后在此选项添加子属性Allow Arbitrary Loads为YES,这样可以进行HTTP请求。也可以把info.plist以SourceCode的形式打开,添加以下字符:

    1. <key>NSAppleMusicUsageDescription</key>
    2. <string></string>
    3. <key>NSPhotoLibraryAddUsageDescription</key>
    4. <string></string>
    5. <key>NSPhotoLibraryUsageDescription</key>
    6. <string></string>
    7. <key>NSMicrophoneUsageDescription</key>
    8. <string></string>
    9. <key>NSCameraUsageDescription</key>
    10. <string></string>
    11. <key>NSAppTransportSecurity</key>
    12. <dict>
    13. <key>NSAllowsArbitraryLoads</key>
    14. <true/>
    15. </dict>

步骤5. 集成Pod

  • 您需要在Podfile文件内增加以下引用:

    1. pod 'MBProgressHUD', '~> 1.1.0'
    2. pod 'AFNetworking', '~> 3.0'
    3. pod 'SDWebImage', '~> 4.0'
    4. pod 'FMDB', '~> 2.5'
    5. pod 'JSONModel'
    6. pod 'LXReorderableCollectionViewFlowLayout'
    7. pod 'Nama-lite', '5.3.0'
    8. pod 'ZipArchive','1.4.0'
    9. pod 'AlivcConan', '0.9.0' #短视频SDK依赖的数据埋点
  • 打开终端cd到您项目的Podfile目录下,执行pod install

步骤6. 录制功能示例代码

  1. #import "AliyunMediaConfig.h"
  2. #import "AlivcShortVideoRoute.h"
  3. //获取路由
  4. AlivcShortVideoRoute *alivcRoute = [AlivcShortVideoRoute shared];
  5. //配置参数
  6. AliyunMediaConfig *recordMediaConfig = [AliyunMediaConfig defaultConfig];
  7. //最小时长
  8. recordMediaConfig.minDuration = 2.0;
  9. //最大时长
  10. recordMediaConfig.maxDuration = 15;
  11. //视频比例
  12. float videoOutputRatio = 9.0f / 16.0f;
  13. //分辨率
  14. float videoOutputWidth = recordMediaConfig.outputSize.width;
  15. //视频的videoSize需为整偶数
  16. CGFloat height = ceilf(videoOutputWidth / videoOutputRatio);
  17. //视频的输出尺寸
  18. recordMediaConfig.outputSize = CGSizeMake(videoOutputWidth, height);
  19. [alivcRoute registerMediaConfig:recordMediaConfig];
  20. //注册一个编辑完成的回调事件
  21. [alivcRoute registerRecordFinishBlock:^(NSString * _Nonnull outputPath) {
  22. NSLog(@"录制完成后的视频存储路径:%@",outputPath);
  23. //在这里您可以做一些短视频处理完成后的后续事件
  24. }];
  25. //获取功能入口controller
  26. UIViewController *control = [alivcRoute alivcViewControllerWithType:AlivcViewControlRecord];
  27. //这里需要隐藏导航栏,因为我们模块内部有自定义统一风格的导航栏
  28. [self.navigationController setNavigationBarHidden:YES animated:YES];
  29. //如果发现无法跳转,请检查自己的代码有没有设置UINavigationController
  30. [self.navigationController pushViewController:control animated:YES];

其他说明

短视频SDK license 开通

  • 购买套餐后请提供应用名、订单号、bundleID、包名和签名(MD5格式小写无冒号),并发送至videosdk@service.aliyun.com,以便为您开通短视频SDK License。
  • license不需要集成到SDK里面,只需确保提交申请的bundleID、包名、签名和自己工程中的完全一致。测试时可以直接使用demo提供的bundleID、包名、签名来体验。
  • 基础版和标准版购买1个套餐最多支持1个app(最多支持10个马甲包),专业版1次购买最多支持3个app(最多支持10个马甲包)。
  • 高级美颜和美肌能力只在专业版中具备,由于是引入第三方需要单独收费。试用时需要额外注明,我方通过邮件发送证书。

高级美颜与美肌

短视频解决方案已经集成依赖faceUnity的高级美颜功能,开发者仅需要替换相应的authpack证书文件即可完成高级美颜效果的展示。

如何获取faceUnity证书

开发者可以通过发送邮件申请试用,试用时需要额外注明:faceUnity高级美颜,我方通过邮件发送证书。邮件地址:videosdk@service.aliyun.com发送内容:请提供应用名、bundleID、包名和签名(MD5格式小写无冒号)

发送邮件获取证书完成之后会获取得到一个authpack.h的文件,替换工程文件中的authpack.h即可,注意必须要保证bundleid一致。

  • 短视频解决方案录制模块faceUnity相关的集成核心代码参考:FaceUnityManager类
  • 高级美颜仅在短视频专业版SDK中可使用
  • 如您需要理解如何完整集成faceUnity请参考faceUnity集成短视频Demo集成步骤:https://github.com/Faceunity/FUAliShortVideoDemo