Указание каталога документов в качестве выходного URL-адреса файла при работе с Glimpse в Swift

Я использую Glimpse для записи содержимого UIView, чтобы он мог сохранить его в файл в каталог документов. У меня возникли проблемы с указанием URL-адреса для вывода файла в строке g.startRecording в viewDidLoad. Я хотел бы, чтобы возвращаемое значение из getDocumentsDirectory() было установлено как URL-адрес, но размещение имени метода в качестве параметра не работает. Я также пытался использовать documentsDirectory, и это тоже не работает и приводит к «Неоднозначному использованию startRecording». Я использую Swift, вот мой код:

import UIKit

class ViewController: UIViewController, VLCMediaPlayerDelegate {

    @IBOutlet weak var videoView: UIView!

    var player: VLCMediaPlayer = VLCMediaPlayer()
    let g: Glimpse = Glimpse()

    let url = URL(string: "rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov")

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        let media = VLCMedia(url: url!)
        player.media = media
        player.delegate = self
        player.drawable = videoView


        let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
        let documentsDirectory = paths[0]


        player.play()
        g.startRecording(videoView) { (documentsDirectory) in
            <#code#>
        }

    }

    func getDocumentsDirectory() -> URL {
        let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
        let documentsDirectory = paths[0]
        return documentsDirectory
    }

    @IBAction func stopButtonPressed(_ sender: UIButton) {
        player.stop()
        recorder.stop()
    }
}

person je42    schedule 08.04.2019    source источник
comment
Пожалуйста, покажите ошибку. Кажется, метод getDocumentsDirectory не используется в приведенном выше коде.   -  person Anand    schedule 08.04.2019


Ответы (1)


Вы используете urls[0] вместо того, чтобы использовать .url. Пример:

func write(_ data: Data, to filename: String) throws {
    let documentDirectory = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor:nil, create:false)
    let fileURL = documentDirectory.appendingPathComponent(filename)
    try data.write(to: fileURL)
}
person Josh Homann    schedule 08.04.2019