当在视图控制器中按下按钮时,我有一个当前播放5秒声音的应用程序。我试图将此设置更改为如果我有一个tableview,触摸特定单元格并播放声音。我不想要你选择单元格的动作,它会推到另一个窗口播放声音。我只是想让声音在细胞触摸时播放。
目前,对于我的按钮设置,我在视图控制器中播放声音:
在SoundLibViewController.h
中//识别与声音文件相关联的UIButton
-(IBAction)CarHorn:(id)sender;
@end
在SoundLibViewController.m
中-(IBAction)CarHorn:(id)sender {
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"CarHorn", CFSTR ("wav"), NULL);
UInt32 soundID;
AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
AudioServicesPlaySystemSound(soundID);
}
不幸的是,我无法在网上找到任何帮助,指出我要将我的代码更改为包含tableviewcell的方向。
举一个我想要做的例子:你进入你的iPhone / iPad并在你选择“声音”的设置下。然后你选择“铃声”,它会带你到一个声音列表。如果您按下与其播放的声音相关的单元格。这就是我想要做的。
答案 0 :(得分:0)
UITableViewDelegate
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString * soundName = [self.soundNames objectAtIndex: indexPath.row]; // Assuming you have an array of sound names
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef)soundName, CFSTR ("wav"), NULL);
UInt32 soundID;
AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
AudioServicesPlaySystemSound(soundID);
}