Uitableview 配置TableViewCell以播放音频

Uitableview 配置TableViewCell以播放音频,uitableview,avaudioplayer,xcode4.3,Uitableview,Avaudioplayer,Xcode4.3,我有一个应用程序,当按下视图控制器中的按钮时,当前会播放5秒的声音。我试图改变这个设置,如果我有一个tableview,一个特定的单元格被触摸,声音播放。我不希望您选择单元格并将其推到另一个窗口播放声音。我只想在触摸手机时播放声音 目前,对于我的按钮设置,我在视图控制器中播放声音的方法如下: 在SoundLibViewController.h中 //识别与声音文件关联的UIButton -(IBAction)CarHorn:(id)sender; @结束 在SoundLibViewContro

我有一个应用程序,当按下视图控制器中的按钮时,当前会播放5秒的声音。我试图改变这个设置,如果我有一个tableview,一个特定的单元格被触摸,声音播放。我不希望您选择单元格并将其推到另一个窗口播放声音。我只想在触摸手机时播放声音

目前,对于我的按钮设置,我在视图控制器中播放声音的方法如下:

在SoundLibViewController.h中

//识别与声音文件关联的UIButton

-(IBAction)CarHorn:(id)sender;
@结束

在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,在设置下选择“声音”。然后你选择“铃声”,它会带你进入一个声音列表。如果按下与播放的声音相关的单元格。这就是我想做的

在您的
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); 
}

我很感激你的建议,但这不是我想要的。我想把现有的代码重写一下,这样当触碰单元格时,就会像触碰iAction按钮一样触发声音文件。我有一个我想通过触碰指定单元格播放的声音列表。基于上面的代码,我假设你的意思是我必须复制并粘贴所有声音的代码。我没有理解上面的代码吗?indexPath.row将为您提供被按下的单元格的索引。然后你可以用它来播放适当的声音。我已经更新了答案。