KSMergeEnginePlayer.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. //
  2. // KSMergeEnginePlayer.h
  3. // MutiPlayDemo
  4. //
  5. // Created by 王智 on 2024/6/17.
  6. //
  7. #import <Foundation/Foundation.h>
  8. #import "KSRealtimeAnalyzer.h"
  9. @class KSMergeEnginePlayer;
  10. @protocol KSMergeEnginePlayerDelegate <NSObject>
  11. /// 播放进度回调
  12. /// - Parameters:
  13. /// - playTime: 播放时间
  14. /// - totalTime: 播放总时长
  15. /// - progress: 进度
  16. /// - currentInterval: 当前时间
  17. /// - player: 播放器对象
  18. - (void)updatePlayProgress:(NSInteger)playTime andTotalTime:(NSInteger)totalTime andProgress:(CGFloat)progress currentInterval:(NSTimeInterval)currentInterval inPlayer:(KSMergeEnginePlayer *_Nonnull)player;
  19. @optional
  20. - (void)enginePlayFinished:(KSMergeEnginePlayer *_Nonnull)player;
  21. - (void)enginePlayerIsReadyPlay:(KSMergeEnginePlayer *_Nonnull)player;
  22. - (void)enginePlayerDidError:(KSMergeEnginePlayer *_Nonnull)player error:(NSError *_Nonnull)error;
  23. // 动效相关
  24. - (void)player:(KSMergeEnginePlayer *_Nonnull)player didGenerateSpectrum:(NSArray<NSArray<NSNumber *> *> *_Nonnull)spectra;
  25. @end
  26. NS_ASSUME_NONNULL_BEGIN
  27. @interface KSMergeEnginePlayer : NSObject
  28. // 是否需要分析音频
  29. @property (nonatomic, assign) BOOL needAnalyzer;
  30. @property (nonatomic, strong, nullable) KSRealtimeAnalyzer *analyzer;
  31. @property (nonatomic, weak) id <KSMergeEnginePlayerDelegate>delegate;
  32. @property (nonatomic, assign) BOOL isReady;
  33. @property (nonatomic, assign) BOOL isPlaying;
  34. @property (nonatomic, assign) float bgVolume;
  35. @property (nonatomic, assign) float recordVolume;
  36. // 加载数据
  37. - (void)prepareNativeSongWithUrl:(NSURL *)recordAudioUrl bgMusic:(NSURL *)bgMusicUrl;
  38. // 修改录音真实延迟 delayMs
  39. - (void)changeRecordDelay:(NSInteger)delayMs;
  40. // 从某个位置开始播放 ms
  41. - (void)seekToTimePlay:(NSInteger)time;
  42. - (void)seekToTime:(NSInteger)time;
  43. // 调整偏移
  44. - (void)seekOffsetTime:(NSInteger)offsetTime;
  45. - (void)stopPlay;
  46. - (void)freePlayer;
  47. // 获取当前时间
  48. - (NSTimeInterval)getCurrentPlayTime;
  49. - (NSTimeInterval)getTotalTime;
  50. - (void)changeVolume:(float)bgVolume recordVolume:(float)recordVolume;
  51. @end
  52. NS_ASSUME_NONNULL_END