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

Я использую 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()
    }
}

1 Ответ

0 голосов
/ 08 апреля 2019

Вы используете 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)
}
...