我正在尝试将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声音并循环播放声音,但我得到多个声音,而不是我需要的声音。请帮帮忙!