用相机录制视频后如何播放?

How can I play my video after it was recorded with the camera?

我正在制作一个摄像机应用程序,我希望能够播放我在按下停止按钮后拍摄的录制视频。我怎么能那样做?这是我这里的代码:

func stopRecording() {

    print("stop the recording")
    guard let writer = assetWriter else { return }

    assetWriterVideoInput = nil
    assetWriterAudioInput = nil
    assetWriterInputPixelBufferAdaptor = nil
    assetWriter = nil

    DispatchQueue.main.async {
        self.delegate?.recorderWillStartWriting()
    }

    capture?.queue.async {
        writer.endSession(atSourceTime: self.currentVideoTime)
        writer.finishWriting {
            switch writer.status {
            case .failed:
                DispatchQueue.main.async {
                    self.delegate?.recorderDidFail(with: RecorderError.couldNotCompleteWritingVideo)
                    print("fail")
                }
            case .completed:
                DispatchQueue.main.async {
                    self.delegate?.recorderDidFinishWriting(outputURL: writer.outputURL)
                    print("completed video")


                }
            default:
                break
            }
        }
        DispatchQueue.main.async {
            self.delegate?.recorderDidFinishRecording()
        }
    }
}

您在 writer.outputURL

处有输出视频的 URL

要播放视频,只需创建一个 AVPlayer

let player = AVPlayer(url: url)

然后创建一个 AVPlayerLayer 并将其添加到视图

let playerLayer = AVPlayerLayer(player: player)
view.layer.addSublayer(playerLayer)

或出示 AVPlayerViewController

let controller = AVPlayerViewController()
controller.player = player

然后

player.play()

参见 https://developer.apple.com/documentation/avfoundation/media_assets_playback_and_editing