录制视频并上传到Firebase [英] Record Video and upload to Firebase
本文介绍了录制视频并上传到Firebase的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有人知道如何将视频上传到Firebase吗?我使用了以下链接:快速录制视频
Anybody know how to upload a video to firebase? I used this link: record video in swift
我设法以相同的视角记录和播放我的视频在giphy上的Gif
I managed to record and have a playback in same view Gif of my video on giphy
播放我刚刚录制的视频的代码是:
The code to play the video I just recorded is:
@IBAction func playVideo(sender: AnyObject) {
print("Play a video")
// Find the video in the app's document directory
let paths = NSSearchPathForDirectoriesInDomains(
NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let documentsDirectory: AnyObject = paths[0]
let dataPath = documentsDirectory.stringByAppendingPathComponent(saveFileName)
let videoAsset = (AVAsset(URL: NSURL(fileURLWithPath: dataPath)))
let playerItem = AVPlayerItem(asset: videoAsset)
print(playerItem)
let videoView = UIView(frame: CGRectMake(self.view.bounds.origin.x, self.view.bounds.origin.y, self.view.bounds.width, self.view.bounds.height))
let pathURL = NSURL.fileURLWithPath(dataPath)
moviePlayer = MPMoviePlayerController(contentURL: pathURL)
if let player = moviePlayer {
player.view.frame = videoView.bounds
player.prepareToPlay()
player.scalingMode = .AspectFill
videoView.addSubview(player.view)
}
moviePlayer!.view.frame = videoPreview.bounds
moviePlayer!.view.center = CGPointMake(CGRectGetMidX(videoPreview.bounds), CGRectGetMidY(videoPreview.bounds))
videoPreview.addSubview((moviePlayer?.view)!)
}
我知道如何将图片上传到Firebase,我需要像这样使用 NSString
:
And I know how to upload a PICTURE to Firebase I need to use NSString
like this:
var base64String : NSString!
//let pic = UIImagePNGRepresentation(UIImage(named: "3")!)
let picture = UIImageJPEGRepresentation(self.profilePictureImageView.image!, 0.1)!
self.base64String = picture.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
let updatedProfileInfo = [
"provider": USER_REF.authData.provider,
"email": self.emailTextfield.text!,
"Username": self.usernameTextfield.text!,
"ProfilePicture" : self.base64String,
"ProfileDescription" : self.bioDescriptionTextfield.text
]
USER_REF.updateChildValues(updatedProfileInfo)
但是您如何处理视频?
谢谢
推荐答案
这是我使用UIImagePicker对象类在设备中选择视频或图像并将其上传到Fireabase的解决方案:
This was my solution on using the UIImagePicker object class to select a video or image in my device and upload it to Fireabase:
@IBAction func uploadButton(_ sender: Any) {
// Configuration
let picker = UIImagePickerController()
picker.allowsEditing = true
picker.delegate = self
picker.mediaTypes = [kUTTypeImage as String, kUTTypeMovie as String]
// Present the UIImagePicker Controller
present(picker, animated: true, completion: nil)
}
// The didFinishPickingMediaWithInfo let's you select an image/video and let's you decide what to do with it. In my example, I decided to convert the selected data into video and upload it to Firebase Storage
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let videoURL = info[UIImagePickerControllerMediaURL] as? NSURL {
// we selected a video
print("Here's the file URL: ", videoURL)
// Where we'll store the video:
let storageReference = FIRStorage.storage().reference().child("video.mov")
// Start the video storage process
storageReference.putFile(videoURL as URL, metadata: nil, completion: { (metadata, error) in
if error == nil {
print("Successful video upload")
} else {
print(error?.localizedDescription)
}
})
}
//Dismiss the controller after picking some media
dismiss(animated: true, completion: nil)
}
这篇关于录制视频并上传到Firebase的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文