小编Vla*_*rin的帖子

AVCaptureSession和AVAudioSession录制视频,而背景音乐只播放一次

看完这个问题后: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)

avfoundation ios avcapturesession avaudiosession swift

10
推荐指数
1
解决办法
1960
查看次数

使用AVAudioConverter Swift将AAC解码为PCM格式

如何在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)

aac avfoundation ios avaudiopcmbuffer avaudioconverter

9
推荐指数
1
解决办法
2139
查看次数

UIDocumentPickerViewController:如何打开给定的子目录

我正在使用带有导入模式的UIDocumentPickerViewController(UIDocumentPickerModeImport),以便让用户从云存储提供程序(dropbox等)导入文档.每次用户重复导入过程时,他都必须从其云存储的根目录开始浏览其文件夹层次结构.

有没有办法在给定的子目录上显示文档选择器?

我知道这个方法:

[NSURL bookmarkDataWithOptions:includingResourceValuesForKeys:relativeToURL:error:]   
Run Code Online (Sandbox Code Playgroud)

但我无法用文件选择器演示选项连接点.我希望选择器选项能够在给定的书签目录URL上显示文档选择器.

objective-c ios uidocumentpickervc icloud-drive uidocumentpickerviewcontroller

6
推荐指数
1
解决办法
1151
查看次数

iOS 11位置许可

我有一个应用程序,需要使用"始终"作为位置更新.但是,我发现在将设备升级到iOS11后,应用程序从未向我请求许可.

然后当我转到隐私>位置>时,"总是"和"使用中"的选择消失了.

我已经检查过需要在plist文件中添加"Privacy - Location Always Usage Description".我添加了,但它仍然是相同的,它无法跟踪位置.

我错过了更新我的代码的任何事情?

location core-location ios ios11

6
推荐指数
1
解决办法
3508
查看次数

Swift 4 Split View Controller Detail取代Master

我刚开始构建一个应用程序,现在我在我的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)

uikit uisplitviewcontroller ios swift

6
推荐指数
1
解决办法
3134
查看次数