Swift 3:如何在使用 AVFoundation 录制视频期间将麦克风静音/取消静音

Posted

技术标签:

【中文标题】Swift 3:如何在使用 AVFoundation 录制视频期间将麦克风静音/取消静音【英文标题】:Swift 3: How to mute / unmute microphone during video recording using AVFoundation 【发布时间】:2017-01-12 08:15:57 【问题描述】:

我正在录制视频,使用 AVFoundation 和 Swift 3 创建自定义摄像头。现在,我想在单击按钮的视频录制过程中添加静音/取消静音音频的功能。我该如何实现?

【问题讨论】:

【参考方案1】:

希望您使用AVCaptureMovieFileOutput 录制来自AVFoundation 的视频

没有直接的方法,但是如果您仔细阅读文档,您可以看到

AVCaptureMovieFileOutputAVCaptureOutput 的子类 您可以通过func connection(withMediaType mediaType: String!) -> AVCaptureConnection! 单独从您的AVCaptureMovieFileOutput 获得音频连接,方法是将媒体类型作为音频传递 单独获得 auido 连接后,只需禁用它

swift 中的示例

let movieFileOutput : AVCaptureMovieFileOutput
// your code to initialize output
var audioConnection :AVCaptureConnection? = movieFileOutput.connection(withMediaType:AVMediaTypeAudio)
if let connection = audioConnection 
    connection.isEnabled = false;

表单文档

对于AVCaptureConnection 属性enabled

这个属性的值是一个BOOL,决定接收者的输出是否应该消费数据 会话运行时从其连接的 inputPorts 获取。客户端可以设置这个属性来停止 在捕获期间数据流到给定的输出。默认值为 YES。

【讨论】:

以上是关于Swift 3:如何在使用 AVFoundation 录制视频期间将麦克风静音/取消静音的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 3 中使用 NSLocale 获取国家代码

如何在 Swift 3 中使用 UnsafeMutablePointer?

如何在 Swift 3.0 中使用 keysSortedByValue?

如何使用 Swift 3 在 UIView 中覆盖 requiresConstraintBasedLayout?

swift 3 如何使用 CFArrayCreate

如何使用 Swift 3 for iOS 在 ViewController.swift 中实现 UICollectionView