DTMF听起来是自定义拨号器iOS

时间:2014-05-16 13:04:26

标签: ios objective-c avaudioplayer

我正在尝试将dtmf声音添加到我的自定义拨号盘。 我设法在触地时为每个号码再现声音。现在,我正在尝试实现自然电话行为,当拨打的人对某个号码进行“长按”时。 问题是声音结束了。只要触摸结束,我怎么能让它持久? 在我的代码中,即使我正在使用触摸事件,我也试图添加一个长音,只是为了测试它是否有效。如果是这样,我会添加手势识别器进行长按。

这是我的代码:

@interface ViewController : UIViewController<AVAudioPlayerDelegate>{
 //SystemSoundID toneSSIDs[12];
    AVAudioPlayer *toneSSIDs[12];
}
@end

@implementation ViewController

-(id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if(self)
    {
        for(int count = 0; count < 12; count++){
           NSString *toneFilename = [NSString stringWithFormat:@"dtmf-%d", count];

            NSURL *toneURLRef = [[NSBundle mainBundle] URLForResource:toneFilename
                                                        withExtension:@"mp3"];

            player = [[AVAudioPlayer alloc]initWithContentsOfURL:toneURLRef error:NULL ];
            player.volume = 0.4f;

            toneSSIDs[count] = player;
        }
    }

    return self;
}

-(void)playSoundForKey:(int)key {
    _sound = toneSSIDs[key];
    _sound.delegate = self;
    _sound.numberOfLoops = -1;
    [_sound prepareToPlay];
    [_sound play];
}

- (IBAction)touchNum:(id)sender {
  [self playSoundForKey:[sender tag]];
}

我尝试使用.wav和.mp3声音并循环播放声音,但我得到多个声音,而不是我需要的声音。请帮帮忙!

0 个答案:

没有答案