NIMAudioContentConfig.m 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. //
  2. // NIMAudioContentConfig.m
  3. // NIMKit
  4. //
  5. // Created by amao on 9/15/15.
  6. // Copyright (c) 2015 NetEase. All rights reserved.
  7. //
  8. #import "NIMAudioContentConfig.h"
  9. #import "NIMKit.h"
  10. @implementation NIMAudioContentConfig
  11. - (CGSize)contentSize:(CGFloat)cellWidth message:(NIMMessage *)message
  12. {
  13. //使用公式 长度 = (最长-最小)*(2/pi)*artan(时间/10)+最小,在10秒时变化逐渐变缓,随着时间增加 无限趋向于最大值
  14. NIMAudioObject *audioContent = (NIMAudioObject*)[message messageObject];
  15. NSAssert([audioContent isKindOfClass:[NIMAudioObject class]], @"message should be audio");
  16. CGFloat value = 2*atan((audioContent.duration/1000.0-1)/10.0)/M_PI;
  17. NSInteger audioContentMinWidth = (cellWidth - 280);
  18. NSInteger audioContentMaxWidth = (cellWidth - 170);
  19. NSInteger audioContentHeight = 30;
  20. return CGSizeMake((audioContentMaxWidth - audioContentMinWidth)* value + audioContentMinWidth, audioContentHeight);
  21. }
  22. - (NSString *)cellContent:(NIMMessage *)message
  23. {
  24. return @"NIMSessionAudioContentView";
  25. }
  26. - (UIEdgeInsets)contentViewInsets:(NIMMessage *)message
  27. {
  28. return [[NIMKit sharedKit].config setting:message].contentInsets;
  29. }
  30. @end