如何在录音机和动画开始之后播放声音而不是播放声音?

时间:2011-10-03 05:14:41

标签: iphone animation avaudioplayer avaudiorecorder

我必须开发一个应用程序,在用户吹蜡烛后播放声音,而不是发出声音。为了吹蜡烛,我使用AVAudioRecorder捕捉用户的打击,而不是它开始停止蜡烛的动画,而不是它应该开始播放歌曲,但它不播放歌曲。我在本地存储了歌曲。(在我的应用程序中)

for AVAudioRecorder

    NSURL *url1 = [NSURL fileURLWithPath:@"/dev/null"];

    NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys:
        [NSNumber numberWithFloat: 44100.0], AVSampleRateKey,
        [NSNumber numberWithInt: kAudioFormatAppleLossless], AVFormatIDKey,
        [NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
        [NSNumber numberWithInt: AVAudioQualityMax],  AVEncoderAudioQualityKey,
        nil];
    NSError *error1;

    recorder = [[AVAudioRecorder alloc] initWithURL:url1 settings:settings error:&error1];

动画图像开始播放之后应播放该歌曲。

imageView1.animationImages= [NSArray arrayWithObjects:
    [UIImage imageNamed:@"can6.png"],
    [UIImage imageNamed:@"can7.png"],
    [UIImage imageNamed:@"can8.png"],
    [UIImage imageNamed:@"can9.png"],
    [UIImage imageNamed:@"can10.png"],nil];
    [imageView1 setAnimationRepeatCount:1];
    imageView1.animationDuration=0.7;
    [imageView1 startAnimating];
    [recorder stop];
    player = [[AVAudioPlayer alloc] 
              initWithContentsOfURL:[NSURL fileURLWithPath:
             [[NSBundle mainBundle] pathForResource:xyz song ofType:nil]]
             error:nil];
    NSLog(@"music play-%@",xyz song);
    [player prepareToPlay];
    [player play];

所有代码都正常工作,只有声音没有播放。 我得到蜡烛停止动画开始,但我不能在这里听到这首歌。虽然上面的声音播放代码在另一个视图中完美地工作并且它播放歌曲但是它不在这里播放歌曲。请帮帮我。

1 个答案:

答案 0 :(得分:0)

检查[[NSBundle mainBundle] pathForResource:xyz song ofType:nil]的结果是否为nil。我认为问题可能是传递nil类型。例如,如果您的歌曲是HappyBirthday.mp3,则应调用

[[NSBundle mainBundle] pathForResource:@"HappyBirthday" ofType:@"mp3"];