1

向 UIAlertView 添加声音的最正确方法是什么?

我应该对它进行子类化,然后在视图出现时播放系统声音吗?

或者更正确的是,不是子类化而是调用一个单独的方法来在声音出现时播放它?

谁能推荐一个播放声音并且看起来比 UIAlertView 更漂亮的控件?

4

1 回答 1

4

你可以通过使用AVAudioPlayer下面的代码来实现这一点: -

UIAlertView在 .h 文件中设置 dalagete,如:-

@interface ViewController : UIViewController <UIAlertViewDelegate>

在 .m 文件中

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/foo.mp3", [[NSBundle mainBundle] resourcePath]]];

    NSError *error;
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"message" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    audioPlayer.numberOfLoops = 1;
    [audioPlayer play];
    [alert show]; 
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    if (buttonIndex==0) {
        [audioPlayer stop];

    }

}

编辑

注意: -不要忘记添加AVAudio framework并且如果您希望播放声音直到不按下按钮UIAlertView然后设置audioPlayer.numberOfLoops = -1;

于 2013-08-10T08:57:02.623 回答