NIMVideoObject.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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. * 视频展示名
  55. */
  56. @property (nullable, nonatomic, copy) NSString *displayName;
  57. /**
  58. * 视频MD5
  59. */
  60. @property (nullable, nonatomic, copy, readonly) NSString *md5;
  61. /**
  62. * 视频的本地路径
  63. * @discussion 目前 SDK 并不提供视频下载功能,但是建议 APP 使用这个 path 作为视频的下载地址,以便后期 SDK 提供缓存清理等功能
  64. */
  65. @property (nullable, nonatomic, copy, readonly) NSString *path;
  66. /**
  67. * 视频的远程路径
  68. */
  69. @property (nullable, nonatomic, copy, readonly) NSString *url;
  70. /**
  71. * 视频封面的远程路径
  72. * @discussion 只有是上传到云信服务器上的视频才支持封面地址,否则地址无效
  73. */
  74. @property (nullable, nonatomic, copy, readonly) NSString *coverUrl;
  75. /**
  76. * 视频封面的本地路径
  77. */
  78. @property (nullable, nonatomic, copy, readonly) NSString *coverPath;
  79. /**
  80. * 封面尺寸
  81. */
  82. @property (nonatomic, assign, readonly) CGSize coverSize;
  83. /**
  84. * 视频时长,毫秒为单位
  85. * @discussion SDK会根据传入文件信息自动解析出duration,但上层也可以自己设置这个值
  86. */
  87. @property (nonatomic, assign) NSInteger duration;
  88. /**
  89. * 文件大小
  90. */
  91. @property (nonatomic, assign, readonly) long long fileLength;
  92. @end
  93. NS_ASSUME_NONNULL_END