Need to access the default camera shutter sound used by the iPhone

可紊 提交于 2019-11-30 01:11:49

问题


Right now when a user presses a button I play a custom camera shutter sound.

However, if possible, I would much rather just use the camera shutter sound that plays by default whenever you take a photo using your iPhone.

Is there a way that I can access and use the default iPhone camera shutter sound? And if yes, then where is it actually located?

I need to figure out it's file path so that I can use it with the code below and just change the input for 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];

Thanks for the help.


回答1:


AudioServicesPlaySystemSound(1108);

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

For 2016 ....

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



回答2:


Looking at stevesliva's answer helped me greatly. However, I ended up with this:

Unexpected type name 'SystemSoundID': expected expression

... using this line...

AudioServicesPlaySystemSoundWithCompletion(SystemSoundID(1108), nil);

So, using this lump of code got my App playing the camera-shutter noise:

SystemSoundID soundID = 1108;

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

Hope this helps someone.



来源:https://stackoverflow.com/questions/22850002/need-to-access-the-default-camera-shutter-sound-used-by-the-iphone

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!