NIMVideoObject.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. //
  2. // NIMVideoObject.h
  3. // NIMLib
  4. //
  5. // Created by Netease.
  6. // Copyright (c) 2015年 Netease. All rights reserved.
  7. //
  8. #import "NIMMessageObjectProtocol.h"
  9. NS_ASSUME_NONNULL_BEGIN
  10. /**
  11. * 视频实例对象
  12. */
  13. @interface NIMVideoObject : NSObject<NIMMessageObject>
  14. /**
  15. * 视频实例对象的初始化方法
  16. *
  17. * @param sourcePath 视频的文件路径
  18. *
  19. * @return 视频实例对象
  20. */
  21. - (instancetype)initWithSourcePath:(NSString *)sourcePath;
  22. /**
  23. * 视频实例对象的初始化方法
  24. *
  25. * @param data 视频数据
  26. * @param extension 视频文件后缀
  27. *
  28. * @return 视频实例对象
  29. */
  30. - (instancetype)initWithData:(NSData *)data
  31. extension:(NSString *)extension;
  32. /**
  33. * 视频实例对象的初始化方法
  34. *
  35. * @param sourcePath 视频的文件路径
  36. * @param scene 场景类别
  37. *
  38. * @return 视频实例对象
  39. */
  40. - (instancetype)initWithSourcePath:(NSString *)sourcePath scene:(NSString *)scene;
  41. /**
  42. * 视频实例对象的初始化方法
  43. *
  44. * @param data 视频数据
  45. * @param extension 视频文件后缀
  46. * @param scene 场景类别
  47. *
  48. * @return 视频实例对象
  49. */
  50. - (instancetype)initWithData:(NSData *)data
  51. extension:(NSString *)extension
  52. scene:(NSString *)scene;
  53. /**
  54. * 设置上传的url,用于发送已经上传好的资源
  55. *
  56. * @param urlString 图片的地址
  57. *
  58. */
  59. - (void)setUploadURL:(NSString *)urlString;
  60. /**
  61. * 视频展示名
  62. */
  63. @property (nullable, nonatomic, copy) NSString *displayName;
  64. /**
  65. * 视频MD5
  66. */
  67. @property (nullable, nonatomic, copy, readonly) NSString *md5;
  68. /**
  69. * 视频的本地路径
  70. * @discussion 目前 SDK 并不提供视频下载功能,但是建议 APP 使用这个 path 作为视频的下载地址,以便后期 SDK 提供缓存清理等功能
  71. */
  72. @property (nullable, nonatomic, copy, readonly) NSString *path;
  73. /**
  74. * 视频的远程路径
  75. */
  76. @property (nullable, nonatomic, copy, readonly) NSString *url;
  77. /**
  78. * 视频封面的远程路径
  79. * @discussion 只有是上传到云信服务器上的视频才支持封面地址,否则地址无效
  80. */
  81. @property (nullable, nonatomic, copy, readonly) NSString *coverUrl;
  82. /**
  83. * 视频封面的本地路径
  84. */
  85. @property (nullable, nonatomic, copy, readonly) NSString *coverPath;
  86. /**
  87. * 封面尺寸
  88. */
  89. @property (nonatomic, assign, readonly) CGSize coverSize;
  90. /**
  91. * 视频时长,毫秒为单位
  92. * @discussion SDK会根据传入文件信息自动解析出duration,但上层也可以自己设置这个值
  93. */
  94. @property (nonatomic, assign) NSInteger duration;
  95. /**
  96. * 文件大小
  97. */
  98. @property (nonatomic, assign, readonly) long long fileLength;
  99. @end
  100. NS_ASSUME_NONNULL_END