YOUPAILZMusicPlayView.m 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. //
  2. // YOUPAILZMusicPlayView.m
  3. // YOUQU
  4. //
  5. // Created by CY on 2021/12/10.
  6. // Copyright © 2021 MS. All rights reserved.
  7. //
  8. #import "YOUPAILZMusicPlayView.h"
  9. @interface YOUPAILZMusicPlayView()
  10. //@property (nonatomic, weak) UIButton *youpaipnextBtn; // 下一首
  11. @property (nonatomic, weak) UIButton *youpaipplayBtn; // 播放、暂停
  12. //@property (nonatomic, weak) UIButton *youpaippreviousBtn; // 上一首
  13. //@property (nonatomic, weak) UIImageView *youpaipmusicImgV; // 唱片
  14. @property (nonatomic, weak) UIImageView *youpaipmusicImgV;
  15. @property (nonatomic, weak) UILabel *youpaipnotDataL; // 无数据
  16. @property (nonatomic, weak) UIView *youpaipmusicInfoV; // 音乐信息
  17. @property (nonatomic, weak) UILabel *youpaipsongNameL; // 歌曲名称
  18. @property (nonatomic, weak) UILabel *youpaipsingerL; // 演唱者
  19. @end
  20. @implementation YOUPAILZMusicPlayView
  21. - (instancetype)init{
  22. if (self = [super init]) {
  23. [self youpaifinitUI];
  24. }
  25. return self;
  26. }
  27. - (void)youpaifinitUI{
  28. UIButton *youpaipnextBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  29. [youpaipnextBtn setImage:[UIImage imageNamed:@"vqu_image_music_next"] forState:UIControlStateNormal];
  30. [youpaipnextBtn addTarget:self action:@selector(youpaifnextBtnClick) forControlEvents:UIControlEventTouchUpInside];
  31. [self addSubview:youpaipnextBtn];
  32. [youpaipnextBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  33. make.right.offset(-14.0f);
  34. make.centerY.equalTo(self);
  35. make.size.mas_offset(CGSizeMake(25.0f, 25.0f));
  36. }];
  37. UIButton *youpaipplayBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  38. [youpaipplayBtn setImage:[UIImage imageNamed:@"vqu_image_music_stop"] forState:UIControlStateNormal];
  39. [youpaipplayBtn setImage:[UIImage imageNamed:@"vqu_image_music_play"] forState:UIControlStateSelected];
  40. [youpaipplayBtn addTarget:self action:@selector(youpaifplayBtnClick:) forControlEvents:UIControlEventTouchUpInside];
  41. [self addSubview:youpaipplayBtn];
  42. self.youpaipplayBtn = youpaipplayBtn;
  43. [youpaipplayBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  44. make.right.equalTo(youpaipnextBtn.mas_left).offset(-20.0f);
  45. make.centerY.equalTo(self);
  46. make.size.mas_offset(CGSizeMake(25.0f, 25.0f));
  47. }];
  48. UIButton *youpaippreviousBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  49. [youpaippreviousBtn setImage:[UIImage imageNamed:@"vqu_image_music_previous"] forState:UIControlStateNormal];
  50. [youpaippreviousBtn addTarget:self action:@selector(youpaifpreviousBtnClick) forControlEvents:UIControlEventTouchUpInside];
  51. [self addSubview:youpaippreviousBtn];
  52. [youpaippreviousBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  53. make.right.equalTo(youpaipplayBtn.mas_left).offset(-20.0f);
  54. make.centerY.equalTo(self);
  55. make.size.mas_offset(CGSizeMake(25.0f, 25.0f));
  56. }];
  57. UIImageView *youpaipmusicImgV = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"vqu_image_music_record"]];
  58. youpaipmusicImgV.clipsToBounds = YES;
  59. youpaipmusicImgV.layer.cornerRadius = 19.5f;
  60. youpaipmusicImgV.contentMode = UIViewContentModeScaleAspectFill;
  61. [self addSubview:youpaipmusicImgV];
  62. self.youpaipmusicImgV = youpaipmusicImgV;
  63. [youpaipmusicImgV mas_makeConstraints:^(MASConstraintMaker *make) {
  64. make.left.offset(14.0f);
  65. make.centerY.equalTo(self);
  66. make.size.mas_offset(CGSizeMake(39.0f, 39.0f));
  67. }];
  68. UILabel *youpaipnotDataL = [[UILabel alloc] init];
  69. youpaipnotDataL.text = @"当前暂无音乐";
  70. youpaipnotDataL.textColor = [UIColor whiteColor];
  71. youpaipnotDataL.font = LCBoldFont(16.0f);
  72. [self addSubview:youpaipnotDataL];
  73. self.youpaipnotDataL = youpaipnotDataL;
  74. [youpaipnotDataL mas_makeConstraints:^(MASConstraintMaker *make) {
  75. make.left.equalTo(youpaipmusicImgV.mas_right).offset(10.0f);
  76. make.centerY.equalTo(self);
  77. make.right.equalTo(youpaippreviousBtn.mas_left).offset(-20.0f);
  78. }];
  79. UIView *youpaipmusicInfoV = [[UIView alloc] init];
  80. [self addSubview:youpaipmusicInfoV];
  81. self.youpaipmusicInfoV = youpaipmusicInfoV;
  82. [youpaipmusicInfoV mas_makeConstraints:^(MASConstraintMaker *make) {
  83. make.left.equalTo(youpaipmusicImgV.mas_right).offset(10.0f);
  84. make.top.bottom.offset(0.0f);
  85. make.right.equalTo(youpaippreviousBtn.mas_left).offset(-20.0f);
  86. }];
  87. UILabel *youpaipsongNameL = [[UILabel alloc] init];
  88. youpaipsongNameL.font = LCFont(14.0f);
  89. youpaipsongNameL.textColor = [UIColor whiteColor];
  90. [youpaipmusicInfoV addSubview:youpaipsongNameL];
  91. self.youpaipsongNameL = youpaipsongNameL;
  92. [youpaipsongNameL mas_makeConstraints:^(MASConstraintMaker *make) {
  93. make.left.offset(0.0f);
  94. make.top.offset(18.5f);
  95. make.right.offset(0.0f);
  96. }];
  97. UILabel *youpaipsingerL = [[UILabel alloc] init];
  98. youpaipsingerL.font = LCFont(11.0f);
  99. youpaipsingerL.textColor = HexColorFromRGB(0x9F9DA5);
  100. [youpaipmusicInfoV addSubview:youpaipsingerL];
  101. self.youpaipsingerL = youpaipsingerL;
  102. [youpaipsingerL mas_makeConstraints:^(MASConstraintMaker *make) {
  103. make.left.offset(0.0f);
  104. make.top.equalTo(youpaipsongNameL.mas_bottom).offset(6.0f);
  105. make.right.offset(0.0f);
  106. }];
  107. if ([YOUPAILZMusicManager shareManager].youpaipmusics.count == 0) {
  108. youpaipnotDataL.hidden = NO;
  109. youpaipmusicInfoV.hidden = YES;
  110. }else{
  111. [self youpaifreloadMusicInfo];
  112. }
  113. @weakify(self);
  114. [[YOUPAILZMusicManager shareManager] setChangeCurrentMusicBlock:^(YOUPAILZMusicListItemModel * _Nonnull model) {
  115. @strongify(self);
  116. [self youpaifreloadMusicInfo];
  117. }];
  118. [[YOUPAILZMusicManager shareManager] setChangePlayStateBlock:^(BOOL isPlay, BOOL isFirst) {
  119. @strongify(self);
  120. [self youpaifreloadMusicInfo];
  121. if (!isPlay) {
  122. [[YOUPAILZChatRoomManager shareManager].agoraKit pauseAudioMixing];
  123. }else{
  124. if (!isFirst) {
  125. [[YOUPAILZChatRoomManager shareManager].agoraKit resumeAudioMixing];
  126. }else{
  127. [[YOUPAILZChatRoomManager shareManager] youpaifloadMusicInfoWithModel:[YOUPAILZMusicManager shareManager].youpaipcurrentMusic];
  128. }
  129. }
  130. }];
  131. }
  132. - (void)youpaifreloadMusicInfo{
  133. self.youpaipnotDataL.hidden = YES;
  134. self.youpaipmusicInfoV.hidden = NO;
  135. self.youpaipsongNameL.text = [YOUPAILZMusicManager shareManager].youpaipcurrentMusic.youpaipname;
  136. // NSMutableString *artistStr = [NSMutableString string];
  137. // for (YOUPAILZMusicArtistModel *artistModel in [YOUPAILZMusicManager shareManager].youpaipcurrentMusic.youpaipartist) {
  138. // [artistStr appendString:artistModel.youpaipname];
  139. // if (artistModel != [YOUPAILZMusicManager shareManager].youpaipcurrentMusic.youpaipartist.lastObject) {
  140. // [artistStr appendString:@"/"];
  141. // }
  142. // }
  143. // if (artistStr.length != 0 && [YOUPAILZMusicManager shareManager].youpaipcurrentMusic.youpaipalbumName.length != 0) {
  144. // [artistStr appendString:@" - "];
  145. // }
  146. // [artistStr appendString:[YOUPAILZMusicManager shareManager].youpaipcurrentMusic.youpaipalbumName];
  147. self.youpaipsingerL.text = [YOUPAILZMusicManager shareManager].youpaipcurrentMusic.youpaipsinger;
  148. self.youpaipplayBtn.selected = [YOUPAILZMusicManager shareManager].youpaipisPlay;
  149. if ([YOUPAILZMusicManager shareManager].youpaipcurrentMusic.youpaipposter.length != 0) {
  150. [self.youpaipmusicImgV sd_setImageWithURL:[NSURL URLWithString:[YOUPAILZMusicManager shareManager].youpaipcurrentMusic.youpaipposter]];
  151. }else{
  152. self.youpaipmusicImgV.image = [UIImage imageNamed:@"vqu_image_music_record"];
  153. }
  154. }
  155. - (void)youpaifnextBtnClick{
  156. if ([YOUPAILZMusicManager shareManager].youpaipmusics.count == 0) {
  157. return;
  158. }
  159. [[YOUPAILZMusicManager shareManager] youpaifnext];
  160. }
  161. - (void)youpaifplayBtnClick:(UIButton *)sender{
  162. if ([YOUPAILZMusicManager shareManager].youpaipmusics.count == 0) {
  163. return;
  164. }
  165. sender.selected = !sender.selected;
  166. if (!sender.selected) {
  167. [[YOUPAILZMusicManager shareManager] youpaifpause];
  168. }else{
  169. [[YOUPAILZMusicManager shareManager] youpaifplay];
  170. }
  171. }
  172. - (void)youpaifpreviousBtnClick{
  173. if ([YOUPAILZMusicManager shareManager].youpaipmusics.count == 0) {
  174. return;
  175. }
  176. [[YOUPAILZMusicManager shareManager] youpaifprevious];
  177. }
  178. @end