ios – 仅使用AVFoundation播放相机声音一次以获得多张图像或简单地以编程方式静音/抑制声音

对于 Question 1,Question 2,Question 3,我在同一个平台上也有类似的问题.

我使用AVFoundation捕获多个图像(5个图像 – 1.5秒的爆破模式),我可以成功捕获5个图像,但每次拍摄新图像时都会制作快门声.

我正在为静态图像使用captureStillImageAsynchronouslyFromConnection.
图像质量/清晰度是我的主要焦点,我不想妥协图像质量和图像捕获速度.

我的查询是:

1)我只能播放一次声音.仅适用于第一个图像,而不是所有5个图像.

2)如果是,请改变快门音,如何?

3)如果合并更改,苹果会批准这些应用程序.

我了解到有关快门音的App Store政策,请参见3.3.8节.

用户界面,数据收集,本地法律和隐私:

Section 3.3.8 : Any form of user or device data collection,or image,picture or voice capture or recording (collectively “Recordings”),and any form of data,content or information collection,processing,maintenance,uploading,syncing,storage,transmission,sharing,disclosure or use performed by,through or in connection with Your Application must comply with all applicable privacy laws and regulations as well as any related Program Requirements,including but not limited to any notice or consent requirements. In particular,a reasonably conspicuous audio,visual or other indicator must be displayed to the user as part of the Application to indicate that a Recording is taking place.

如果我们可以静音/完全抑制相机快门音(完全没有声音)也是很好的.

任何对正确方向的帮助将不胜感激.

解决方法

我使用了你在 Question 1发布的方法,它的工作原理就像魔术.所以我强烈建议你遵循最好的答案的例子.

关于您的查询:

1)您只能通过组合包含在布尔值中的示例的解决方案来检查第一张图片是否已被拍摄的第一张照片的声音.例如:

if (hasTakenFirstPicture) {
    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);
} else {
    hasTakenFirstPicture = YES;
}
[self.stillImageOutput captureStillImageAsynchronouslyFromConnection:
...

2)您无法更改默认的快门音.

3)app store review guidelines没有提及拒绝更改快门音的应用程序,所以你几乎在这里被覆盖.如果您提交的应用程序不符合列表中指定的任何条件,他们应该只会拒绝您的应用.

希望这可以帮助!

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...