在 Swift 中使用 Glimpse 时将文档目录指定为文件输出 URL

Posted

技术标签:

【中文标题】在 Swift 中使用 Glimpse 时将文档目录指定为文件输出 URL【英文标题】:Specifying documents directory as file output URL while working with Glimpse in Swift 【发布时间】:2019-04-08 09:45:10 【问题描述】:

我正在使用Glimpse 记录 UIView 的内容,以便它可以将其保存到文档目录中的文件中。我在 viewDidLoad 的 g.startRecording 行中指定文件输出的 URL 时遇到问题。我想将 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()
    

【问题讨论】:

请显示错误。上面的代码中似乎没有使用“getDocumentsDirectory”方法。 【参考方案1】:

当您应该使用 .url 时,您正在使用 urls[0]。示例:

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)

【讨论】:

以上是关于在 Swift 中使用 Glimpse 时将文档目录指定为文件输出 URL的主要内容,如果未能解决你的问题,请参考以下文章

在触摸时将动画添加到 SKSpriteNode (Swift)

Swift 比较运算和三目条件运算

如何在使用桥接头时将数据(字典)从 Objective-C 控制器传递到 Swift `viewcontroller` 中?还有其他方法吗?

在 Swift iOS 中单击按钮时将视图移动到另一个视图

在 Swift 中自动移动 UISlider

07 A Glimpse of Industrial Solutions