XYChatRoomRTCManager.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. //
  2. // XYChatRoomRTCManager.h
  3. // Starbuds
  4. //
  5. // Created by 翟玉磊 on 2020/7/9.
  6. // Copyright © 2020 翟玉磊. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. @protocol XYChatRoomRTCManagerDelegate <NSObject>
  11. /// 当前混音播放状态改变
  12. - (void)playLocalAudioMixingStatusChange:(MusicPlayStatus)status musicId:(NSString *)musicId;
  13. /// key:streamId value:volume 0~100
  14. - (void)reportAudioVolumeIndicationOfSpeakers:(NSDictionary<NSString *, NSNumber *> *)speakers;
  15. @end
  16. @interface XYChatRoomRTCManager : NSObject
  17. @property (nonatomic, weak) id<XYChatRoomRTCManagerDelegate>delegate;
  18. /// 跨房PK房间Id
  19. @property (nonatomic, copy) NSString *kfPKRoomId;
  20. /// 跨房PK客场静音状态 YES静音
  21. @property (nonatomic, assign) BOOL kfPkMute;
  22. /// 加入房间
  23. /// @param roomId 房间id
  24. /// @param userId 用户id
  25. - (void)joinRoomWithRoomId:(NSString *)roomId userId:(NSString *)userId token:(NSString *)token resultBlock:(void(^)(NSInteger errCode, NSString *errMsg))block;
  26. /// 退出房间
  27. /// @param roomId 房间id
  28. /// @param block 回调
  29. - (void)exitRoomWithRoomId:(NSString *)roomId resultBlock:(void(^)(NSInteger errCode, NSString *errMsg))block;
  30. /// 开始推流 (streamId=roomId+userId)
  31. - (void)startPublishingStream:(NSString *)streamId roomId:(NSString *)roomId resultBlock:(void(^ _Nullable)(NSInteger errCode, NSString *errMsg))block;
  32. /// 停止推流
  33. - (void)stopPublishingStreamResultBlock:(void(^ _Nullable)(NSInteger errCode, NSString *errMsg))block;
  34. /// 检查音频输入是否静音
  35. - (BOOL)isSpeakerMuted;
  36. /// 是否静音(关闭音频输入) YES:表示静音音频输入关闭 NO:表示音频输入没有关闭
  37. - (void)muteSpeaker:(BOOL)mute;
  38. /// 检查麦克风是否关闭 YES关闭 NO开启
  39. - (BOOL)isMicrophoneMuted;
  40. /// 是否关闭麦克风 YES关闭 NO开启
  41. - (void)muteMicrophone:(BOOL)mute;
  42. /// 开/关音频采集设备 YES 表示打开音频采集设备;NO 表示关闭音
  43. - (void)enableAudioCaptureDevice:(BOOL)enable;
  44. /// 设置音频路由到扬声器
  45. /// @param defaultToSpeaker 是否使用内置扬声器播放声音,YES 表示使用内置扬声器播放声音,NO 表示使用当前系统调度的优先级最高的音频输出设备播放声音
  46. - (void)setAudioRouteToSpeaker:(BOOL)defaultToSpeaker;
  47. #pragma mark — 音乐播放管理
  48. /// 开始播放音乐文件
  49. /// @param filePath 指定需要混音的音频文件名和文件路径名,例如: /var/mobile/Containers/Data/audio.mp4。建议填写文件后缀名。若无法确定文件后缀名,可不填。支持以下音频格式: mp3,aac,m4a,3gp,wav
  50. - (void)startAudioMixing:(NSString * _Nonnull)filePath musicId:(nonnull NSString *)musicId;
  51. /// 停止播放音乐文件
  52. - (void)stopAudioMixing;
  53. /// 暂停播放音乐文件
  54. - (void)pauseAudioMixing;
  55. /// 恢复播放音乐文件
  56. - (void)resumeAudioMixing;
  57. /// 调节音乐文件的播放音量 该方法调节混音的音乐文件在本地和远端播放的音量大小。
  58. /// @param volume 音乐文件播放音量范围为 0~200。默认 100 为原始文件音量
  59. - (void)adjustAudioMixingVolume:(int)volume;
  60. /// 获取音乐文件的本地播放音量
  61. - (int)getAudioMixingPlayoutVolume;
  62. /// 获取音乐文件时长 单位为毫秒
  63. - (int)getAudioMixingDuration;
  64. /// 获取音乐文件播放进度,单位为毫秒。
  65. - (int)getAudioMixingCurrentPosition;
  66. /// 设置本地混响效果
  67. /// @param soundName 混响效果的名字 不传则说明是关闭
  68. - (void)setLocalVoiceReverbPresetName:(NSString *)soundName;
  69. - (void)clear;
  70. @end
  71. NS_ASSUME_NONNULL_END