用相机录制视频后如何播放?
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
我正在制作一个摄像机应用程序,我希望能够播放我在按下停止按钮后拍摄的录制视频。我怎么能那样做?这是我这里的代码:
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
要播放视频,只需创建一个 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