掌握细节和声音

时间:2013-04-30 01:01:29

标签: xcode ios6

我是Objective-C的新手。我的问题是我在Master-Detail设计中有一个应用程序,其中包含一个列出英语单词及其威尔士语翻译的表格。这很好用,但我也希望通过UIButton为发音添加声音。我知道如何制作一个声音播放,但是当我按下按钮时,如何为正确的文字播放制作相应的声音?

我的表格如下:

-(void)createWordData {
    NSMutableArray *nounWords;
    NSMutableArray *verbWords;

    _wordSections=@[@"Nouns", @"Verbs"];

    nounWords=[[NSMutableArray alloc] init];
    verbWords=[[NSMutableArray alloc] init];

    [nounWords addObject:@{@"English":@"girl",@"Cymraeg":@"y ferch (f.)",@"Sound":@"Merch"}];
    [nounWords addObject:@{@"English":@"boy",@"Cymraeg":@"y bachgen (m.)",@"Sound":@"Bachgen"}];
    [nounWords addObject:@{@"English":@"cat",@"Cymraeg":@"y gath (f.)",@"Sound":@"Cath"}];
    [nounWords addObject:@{@"English":@"dog",@"Cymraeg":@"y ci (m.)",@"Sound":@"Ci"}];

    [verbWords addObject:@{@"English":@"walk",@"Cymraeg":@"cerdded",@"Sound":@"Cerdded"}];
    [verbWords addObject:@{@"English":@"run",@"Cymraeg":@"rhedeg",@"Sound":@"Rhedeg"}];
    [verbWords addObject:@{@"English":@"play",@"Cymraeg":@"chwarae",@"Sound":@"Chwarae"}];
    [verbWords addObject:@{@"English":@"sleep",@"Cymraeg":@"cysgu",@"Sound":@"Cysgu"}];

    _wordData=@[nounWords,verbWords];
}

播放动作如下:

- (IBAction)pronunciation:(id)sender {

    SystemSoundID soundID;
    NSString *soundFile = [[NSBundle mainBundle]
                           pathForResource:@"Cath" ofType:@"wav"];

    AudioServicesCreateSystemSoundID((__bridge CFURLRef)
                                     [NSURL fileURLWithPath:soundFile]
                                     , &soundID);
    AudioServicesPlayAlertSound(soundID);
}

1 个答案:

答案 0 :(得分:0)

pronunciation:方法中,不是硬编码@"Cath",而是选择声音取决于sender的事实(或关于当前状态的其他事实)确定用户想要的单词。

顺便说一下,让这个声音成为警报声可能根本不是产生声音的最好方法。 (无论如何你可能会泄漏你的声音。)你应该使用AVAudioPlayer。