IFlyPcmRecorder.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. //
  2. // IFlyPcmRecorder.h
  3. // MSC
  4. // description:
  5. // Created by ypzhao on 12-11-15.
  6. // Copyright (c) 2012年 iflytek. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <AudioToolbox/AudioQueue.h>
  10. #import <AudioToolbox/AudioFile.h>
  11. #import <AudioToolbox/AudioServices.h>
  12. #import <AudioToolbox/AudioConverter.h>
  13. #import <AVFoundation/AVAudioSession.h>
  14. @class IFlyPcmRecorder;
  15. /**
  16. * 录音协议
  17. */
  18. @protocol IFlyPcmRecorderDelegate<NSObject>
  19. /**
  20. * 回调音频数据
  21. *
  22. * @param buffer 音频数据
  23. * @param size 表示音频的长度
  24. */
  25. - (void) onIFlyRecorderBuffer: (const void *)buffer bufferSize:(int)size;
  26. /**
  27. * 回调音频的错误码
  28. *
  29. * @param recoder 录音器
  30. * @param error 错误码
  31. */
  32. - (void) onIFlyRecorderError:(IFlyPcmRecorder*)recoder theError:(int) error;
  33. @optional
  34. /**
  35. * 回调录音音量
  36. *
  37. * @param power 音量值
  38. */
  39. - (void) onIFlyRecorderVolumeChanged:(int) power;
  40. @end
  41. /**
  42. * 录音封装
  43. */
  44. @interface IFlyPcmRecorder : NSObject<AVAudioSessionDelegate>
  45. /**
  46. * 录音委托对象
  47. */
  48. @property (assign) id<IFlyPcmRecorderDelegate> delegate;
  49. /**
  50. * 单例模式
  51. *
  52. * @return 返回录音对象单例
  53. */
  54. + (instancetype) sharedInstance;
  55. /**
  56. * 开始录音
  57. *
  58. * @return 开启录音成功返回YES,否则返回NO
  59. */
  60. - (BOOL) start;
  61. /**
  62. * 停止录音
  63. */
  64. - (void) stop;
  65. /**
  66. * 设置音频采样率
  67. *
  68. * @param rate -[in] 采样率,8k/16k
  69. */
  70. - (void) setSample:(NSString *) rate;
  71. /*
  72. * 设置录音时间间隔参数
  73. */
  74. - (void) setPowerCycle:(float) cycle;
  75. /**
  76. * 保存录音
  77. *
  78. * @param savePath 音频保存路径
  79. */
  80. -(void) setSaveAudioPath:(NSString *)savePath;
  81. @end