需要访问iPhone使用的默认相机快门声音

时间:2014-04-03 22:13:42

标签: ios objective-c iphone-5 iphone-4 audiotoolbox

现在,当用户按下按钮时,我会播放自定义相机快门声。

但是,如果可能的话,我宁愿使用默认播放的相机快门声,只要您使用iPhone拍照。

有没有办法可以访问并使用默认的iPhone相机快门声?如果是,那么它实际位于何处?

我需要找出它的文件路径,以便我可以将它与下面的代码一起使用,只需更改pathForResource的输入:

NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"shutter" ofType: @"wav"];

    NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:soundFilePath ];

    self.myAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];

    [self.myAudioPlayer play];

感谢您的帮助。

2 个答案:

答案 0 :(得分:30)

AudioServicesPlaySystemSound(1108);

基于: Are there any other iOS system sounds available other than 'tock'?http://iphonedevwiki.net/index.php/AudioServices

2016年......

    if #available(iOS 9.0, *) {
        AudioServicesPlaySystemSoundWithCompletion(SystemSoundID(1108), nil)
    } else {
        AudioServicesPlaySystemSound(1108)
    }

答案 1 :(得分:4)

看着stevesliva的回答对我很有帮助。但是,我最终得到了这个:

Unexpected type name 'SystemSoundID': expected expression

......使用这条线...

AudioServicesPlaySystemSoundWithCompletion(SystemSoundID(1108), nil);

所以,使用这段代码让我的应用程序播放相机快门噪音:

SystemSoundID soundID = 1108;

AudioServicesPlaySystemSoundWithCompletion(soundID, ^{
    AudioServicesDisposeSystemSoundID(soundID);
});

希望这有助于某人。