AVFoundation、captureStillImageAsynchronouslyFromConnection 時にシャッター音をオフにするにはどうすればいいですか? 質問する

AVFoundation、captureStillImageAsynchronouslyFromConnection 時にシャッター音をオフにするにはどうすればいいですか? 質問する

AVFoundationによるカメラからのライブプレビュー中に画像をキャプチャしようとしています接続から非同期的に静止画像をキャプチャするこれまでのところ、プログラムは期待どおりに動作しています。ただし、シャッター音をミュートするにはどうすればよいでしょうか?

ベストアンサー1

このコードを使用して、iOSのデフォルトのシャッター音をキャプチャしたことがあります(サウンドファイル名のリストはこちらです)https://github.com/TUNER88/iOSシステムサウンドライブラリ):

NSString *path = @"/System/Library/Audio/UISounds/photoShutter.caf";
NSString *docs = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSData *data = [NSData dataWithContentsOfFile:path];
[data writeToFile:[docs stringByAppendingPathComponent:@"photoShutter.caf"] atomically:YES];

次に、サードパーティのアプリを使用して、photoShutter.cafドキュメント ディレクトリから抽出しました (Mac 用の DiskAid)。次のステップでは、photoShutter.cafAudacity オーディオ エディターで開いて反転効果を適用しました。拡大すると次のようになります。

ここに画像の説明を入力してください

次に、このサウンドを次のように保存しphotoShutter2.caf、直前にこのサウンドを再生してみましたcaptureStillImageAsynchronouslyFromConnection

static SystemSoundID soundID = 0;
if (soundID == 0) {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"photoShutter2" ofType:@"caf"];
    NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)filePath, &soundID);
}
AudioServicesPlaySystemSound(soundID);

[self.stillImageOutput captureStillImageAsynchronouslyFromConnection:
...

そして、これは本当に機能します! 何度かテストを実行しましたが、そのたびにシャッター音が聞こえません :)

iPhone 5S iOS 7.1.1 でキャプチャされた、すでに反転されたサウンドを次のリンクから入手できます:https://www.dropbox.com/s/1echsi6ivbb85bv/photoShutter2.caf

おすすめ記事