我正在尝试编写一个快速的iOS应用程序,它将记录用户的声音。我已经迅速编写了以下代码,但是无法从用户那里请求麦克风权限。它可以正常打印,但从不记录音频,并且在“隐私”下的“设置”窗格中未列出该应用程序。如何快速请求录制权限?
var session: AVAudioSession = AVAudioSession.sharedInstance()
session.requestRecordPermission({(granted: Bool)-> Void in
if granted {
println(" granted")
session.setCategory(AVAudioSessionCategoryPlayAndRecord, error: nil)
session.setActive(true, error: nil)
self.recorder.record()
}else{
println("not granted")
}
})
从iOS 7开始,您需要检查它是否响应选择器 requestRecordPermission:
我已经使用带有 iOS 8 Beta* 的 iPhone 5S 测试了此代码,它可以完美运行。授予权限后,系统将不再要求它。 *
值得一提的是,使用 Simulator 时并没有征求许可。
这是我尝试并正在工作的代码:
if (session.respondsToSelector("requestRecordPermission:")) {
AVAudioSession.sharedInstance().requestRecordPermission({(granted: Bool)-> Void in
if granted {
println("granted")
session.setCategory(AVAudioSessionCategoryPlayAndRecord, error: nil)
session.setActive(true, error: nil)
self.recorder ()
} else{
println("not granted")
}
})
}
问题内容: 我有一个应用程序可以点击麦克风,还可以根据麦克风输入播放声音(不必同时通过tho)。下面的代码有效。但是一个问题是输出在小型顶部扬声器而不是底部真实扬声器上播放。我可以通过 在播放器开始播放之前 将3行放在下面来奇怪地解决此问题,然后我可以听到扬声器上的声音。 但是,麦克风停止收听 !即使在播放器停止播放之后。基本上麦克风不喜欢 .defaultToSpeaker 任何想法? 这里也记
问题内容: 迅速有没有通过声明?例如,如果我执行以下操作 案例“一”和案例“二”是否可以执行相同的代码? 问题答案: 是。您可以按照以下方式进行操作: 另外,您可以使用关键字:
问题内容: Swift中“ with”关键字的目的是什么?到目前为止,我发现如果需要覆盖现有的全局函数(例如toDebugString),则可以使用关键字。 问题答案: 是 不是 一个关键字-它只是一个外部的参数标识。这也可以: 由于已经定义了函数,因此通过使用外部参数,您将创建 重载 :相同的函数名称,但参数不同。在这种情况下,参数是相同的,但是用一个外部名称标识,并且迅速使它成为具有不同签名的
问题内容: 我想要一个数字数组上的函数(或任何可加的事物的有序集合),该函数返回长度相同的数组,其中每个元素是A中所有元素的总和, 直到一个include。 例子: 我可以使用for循环或其他方式执行此操作。还有更多功能选择吗?它有点像reduce,只是它会构建一个包含所有中间值的结果数组。 更通用的是具有可以接受任何序列并提供输入序列的总运行时间的函数。 问题答案: 您正在寻找的通用组合器通常称
问题内容: 如何迅速地建立代表? 问题答案: 它与obj-c没什么不同。首先,您必须在类声明中指定协议,如下所示: 该实现将如下所示: 当然,您必须设置委托。例如:
引用脚本的内容: !define PRODUCT_NAME "迅雷" !define THIS_NAME_LITE "迅雷5" !define VER_MAJOR "5.9" !define VER_MINOR "1.922" !define PRODUCT_VERSION "5.9.1.922" ;!define PRODUCT_PUBLISHER "xuexi" !define Instro