JMSGVoiceContent.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*
  2. * | | | | \ \ / / | | | | / _______|
  3. * | |____| | \ \/ / | |____| | / /
  4. * | |____| | \ / | |____| | | | _____
  5. * | | | | / \ | | | | | | |____ |
  6. * | | | | / /\ \ | | | | \ \______| |
  7. * | | | | /_/ \_\ | | | | \_________|
  8. *
  9. * Copyright (c) 2011 ~ 2015 Shenzhen HXHG. All rights reserved.
  10. */
  11. #import <Foundation/Foundation.h>
  12. #import <JMessage/JMSGMediaAbstractContent.h>
  13. /*!
  14. * 语音内容类型
  15. */
  16. @interface JMSGVoiceContent : JMSGMediaAbstractContent <NSCopying>
  17. JMSG_ASSUME_NONNULL_BEGIN
  18. /*!
  19. * @abstract 语音时长 (单位:秒)
  20. */
  21. @property(nonatomic, copy, readonly) NSNumber *duration;
  22. // 不支持使用的初始化方法
  23. - (instancetype)init NS_UNAVAILABLE;
  24. /*!
  25. * @abstract 初始化语音内容
  26. *
  27. * @param data 该语音内容的数据. 不允许为 nil, 并且内容长度应大于 0, 否则失败
  28. * @param duration 该语音内容的持续时长. 单位是秒. 不允许为 nil, 并且应大于 0.
  29. *
  30. * @discussion 这是预设的初始化方法, 创建一条语音内容, 必然传入语音数据, 以及时长.
  31. */
  32. - (instancetype)initWithVoiceData:(NSData *)data
  33. voiceDuration:(NSNumber *)duration;
  34. /*!
  35. * @abstract 获取语音内容的数据
  36. *
  37. * @param handler 结果回调。回调参数:
  38. *
  39. * - data 语音数据;
  40. * - objectId 消息msgId;
  41. * - error 不为nil表示出错;
  42. *
  43. * 如果 error 为 ni, data 也为 nil, 表示没有数据.
  44. *
  45. * @discussion 如果本地数据文件存在, 则直接返回.
  46. * 如果本地还没有语音数据,会发起网络请求下载。下载完后再回调。
  47. */
  48. - (void)voiceData:(JMSGAsyncDataHandler)handler;
  49. JMSG_ASSUME_NONNULL_END
  50. @end