看完这个问题后:AVAudioSession AVAudioSessionCategoryPlayAndRecord故障,我试图尝试通过正常工作的背景音乐进行视频录制.当录制开始时,我正在解决音频故障,当它结束时,它会在第一次录制时正常工作.但如果我再次尝试录音,音乐就会停止.
有什么想法吗?
这是我的代码片段:
captureSession = AVCaptureSession()
captureSession?.automaticallyConfiguresApplicationAudioSession = false
captureSession?.usesApplicationAudioSession = true
guard let captureSession = self.captureSession else {
print("Error making capture session")
return;
}
captureSession.sessionPreset = AVCaptureSessionPresetHigh
self.camera = self.defaultBackCamera()
self.audioDeviceInput = try? AVCaptureDeviceInput(device: getAudioDevice())
cameraInput = try AVCaptureDeviceInput(device: camera)
captureSession.beginConfiguration()
if captureSession.inputs.count > 0 {
return
}
if captureSession.canAddInput(cameraInput) {
captureSession.addInput(cameraInput)
if captureSession.outputs.count == 0 {
photoOutput = AVCapturePhotoOutput()
if captureSession.canAddOutput(photoOutput!) {
captureSession.addOutput(self.photoOutput!)
}
}
captureSession.commitConfiguration()
if !captureSession.isRunning {
captureSession.startRunning()
self.previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
self.previewLayer!.videoGravity …Run Code Online (Sandbox Code Playgroud) 如何在Swift上使用AVAudioConverter,AVAudioCompressedBuffer和AVAudioPCMBuffer将AAC转换为PCM?
在WWDC 2015上,507会话说,AVAudioConverter可以编码和解码PCM缓冲区,显示编码示例,但未显示解码示例.我试过解码,有些东西不起作用.我不知道:(
呼叫:
//buffer - it's AVAudioPCMBuffer from AVAudioInputNode(AVAudioEngine)
let aacBuffer = AudioBufferConverter.convertToAAC(from: buffer, error: nil) //has data
let data = Data(bytes: aacBuffer!.data, count: Int(aacBuffer!.byteLength)) //has data
let aacReverseBuffer = AudioBufferConverter.convertToAAC(from: data) //has data
let pcmReverseBuffer = AudioBufferConverter.convertToPCM(from: aacBuffer2!, error: nil) //zeros data. data object exist, but filled by zeros
Run Code Online (Sandbox Code Playgroud)
这是转换代码:
class AudioBufferFormatHelper {
static func PCMFormat() -> AVAudioFormat? {
return AVAudioFormat(commonFormat: .pcmFormatFloat32, sampleRate: 44100, channels: 1, interleaved: false)
}
static func AACFormat() -> AVAudioFormat? {
var outDesc = …Run Code Online (Sandbox Code Playgroud) 我正在使用带有导入模式的UIDocumentPickerViewController(UIDocumentPickerModeImport),以便让用户从云存储提供程序(dropbox等)导入文档.每次用户重复导入过程时,他都必须从其云存储的根目录开始浏览其文件夹层次结构.
有没有办法在给定的子目录上显示文档选择器?
我知道这个方法:
[NSURL bookmarkDataWithOptions:includingResourceValuesForKeys:relativeToURL:error:]
Run Code Online (Sandbox Code Playgroud)
但我无法用文件选择器演示选项连接点.我希望选择器选项能够在给定的书签目录URL上显示文档选择器.
objective-c ios uidocumentpickervc icloud-drive uidocumentpickerviewcontroller
我有一个应用程序,需要使用"始终"作为位置更新.但是,我发现在将设备升级到iOS11后,应用程序从未向我请求许可.
然后当我转到隐私>位置>时,"总是"和"使用中"的选择消失了.
我已经检查过需要在plist文件中添加"Privacy - Location Always Usage Description".我添加了,但它仍然是相同的,它无法跟踪位置.
我错过了更新我的代码的任何事情?
我刚开始构建一个应用程序,现在我在我的Main.storyboard中添加了2个Split View控制器,它看起来像这个图像
我将以下代码添加到我的主人:
import UIKit
class ContactsMaster: UITableViewController {
var ContactsDetailController: ContactsDetail? = nil
var objects = [Any]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
navigationItem.leftBarButtonItem = editButtonItem
let addButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(insertNewObject(_:)))
navigationItem.rightBarButtonItem = addButton
if let split = splitViewController {
let controllers = split.viewControllers
ContactsDetailController = (controllers[controllers.count-1] as! UINavigationController).topViewController as? ContactsDetail
}
}
override func viewWillAppear(_ animated: Bool) {
clearsSelectionOnViewWillAppear = splitViewController!.isCollapsed
super.viewWillAppear(animated) …Run Code Online (Sandbox Code Playgroud) ios ×5
avfoundation ×2
swift ×2
aac ×1
icloud-drive ×1
ios11 ×1
location ×1
objective-c ×1
uidocumentpickerviewcontroller ×1
uikit ×1