在iOS中立即开始播放简短的自制声音

时间:2011-09-27 18:25:44

标签: ios audio avaudioplayer core-audio playback

我有一个由程序生成的自生成的DTMF声音(带有wav标题),我希望能够快速播放,实际上只要用户触摸按钮即可。这个DTMF​​声音必须无限播放/循环,直到我停止它。其他一些声音必须能够同时播放。

我对音频编程很陌生,我测试了很多方法,现在我迷路了。

我怎样才能做到这一点?

需要:

  • 非常快速的播放开始(包括第一次)
  • 同时发出许多声音(短音+ - 2-6秒)
  • 无间隙的无限DTMF声音
  • 控制正在播放/能够停止一个播放声音的不同声音

2 个答案:

答案 0 :(得分:1)

AVAudioPlayer如果你真的需要延迟尽可能低,那么你可以忍受一些延迟,OpenAL(例如Finch)。

答案 1 :(得分:-1)

我使用已经存在的.wav文件。我可以很轻松地玩它。

运行以下代码。包括AudioToolbox框架。

写入.h文件#import <AudioToolbox/AudioToolbox.h>
写入.m文件

-(IBAction)startSound{

    //Get the filename of the sound file:
    NSString *path = [NSString stringWithFormat:@"%@%@", [[NSBundle mainBundle] resourcePath], @"/sound1.wav"];

        //declare a system sound
        SystemSoundID soundID;

    //Get a URL for the sound file
    NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];

    //Use audio sevices to create the sound
    AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);
    //Use audio services to play the sound
    [self sound];
    timer =[ [NSTimer scheduledTimerWithTimeInterval:2.1 target:self selector:@selector(sound) userInfo:nil repeats:YES]retain];

}