当前位置:主页 > 查看内容

iOS IM音耗音响包音用延时处理

发布时间:2018-11-27 12:37| 位朋友查看

简介:近日到做IM音耗, 接受到很多音耗时, 假设播放音响, 会形成持续的包音, 却以此雕刻么处理, 用延时到来做, 记载下 ! // 报户口音响 - (void)registerSystemSound { ? ? NSString *path1=[[NSBundle mainBund……

  近日到做IM音耗, 接受到很多音耗时, 假设播放音响, 会形成持续的包音, 却以此雕刻么处理, 用延时到来做, 记载下 !

  //

  报户口音响

  - (void)registerSystemSound

  {

  ? ?

  NSString *path1=[[NSBundle

  mainBundle] pathForResource:@"sendmsg"

  ofType:@"caf"];

  ? ?

  NSString *path2=[[NSBundle

  mainBundle] pathForResource:@"in"

  ofType:@"caf"];

  ? ?

  //报户口音响到体系

  ? ?

  CFURLRef url1=(__bridge

  CFURLRef)[NSURL

  fileURLWithPath:path1];

  ? ?

  AudioServicesCreateSystemSoundID(url1,&sendmsg_sound_id);

   ?

  ? ?

  CFURLRef url2=(__bridge

  CFURLRef)[NSURL

  fileURLWithPath:path2];

  ? ?

  AudioServicesCreateSystemSoundID(url2,&receive_sound_id);

  }

  //

  播放音响

  - (void)playSound:(int)type

  {

  ? if(_isSoundPlaying) {

  ? ? ? ?

  return;

  ? ? };

   ?

  ? ?

  _isSoundPlaying=YES;

  ? ? ?//此雕刻个是重心

  ? ? [self

  delayExecutePlaySoundTimeInterval:20.f

  completionCallBack:^{

  ? ? ? ?

  _isSoundPlaying=NO;

  ? ? }];

  ? ? ? //

  添加以音频完一齐时的回调

  ? ? ? ?AudioServicesAddSystemSoundCompletion(sendmsg_sound_id,

  NULL, NULL,

  completionCallback, (__bridge

  void *)(self));

  ? ? ? ?

  AudioServicesPlaySystemSound(sendmsg_sound_id);

  }

  //此雕刻么是每回邑要报户口壹个音响, 播放完就吊销了, 团弄体不建议此雕刻么做, 此雕刻个吊销的却以写在dealloc中, 坚硬是音响条需寻求报户口壹次就够了

  static

  void completionCallback (SystemSoundID? mySSID,

  void* clientData)

  {

  ? ?

  // 在播放完一齐后循环播放

  //? ? AudioServicesPlaySystemSound(mySSID);

  ? ? // 移摒除完成后实行的函数

  ? ? AudioServicesRemoveSystemSoundCompletion(mySSID);

  ?

  ? ? // 假释音响对象以及相干的所拥有资源

  ? ? AudioServicesDisposeSystemSoundID(mySSID);

  }

  //延时操干

  -(void)delayExecutePlaySoundTimeInterval:(CGFloat)timeInterval completionCallBack:(void(^)(void))completionBlock

  {

  ? ? dispatch_time_t 【sunbet75】 popTime=dispatch_time(DISPATCH_TIME_NOW, (int64_t)(timeInterval *

推荐图文


随机推荐