HbuilderX上传手机视频

    xiaoxiao2023-09-27  177

    项目需要上传视频,一开始使用Form表单直接选择视频进行上传,但是后来出现一些不知道是错误,所以改用直接调用手机的摄像头进行摄像和选择手机中的视频。

    function ChooseVideo() { //选择录像还是选择手机的中的视频 if (mui.os.plus) { var a = [{ title: "录像" }, { title: "从手机视频选择" }]; plus.nativeUI.actionSheet({ title: "修改企业视频", cancel: "取消", buttons: a }, function(b) { switch (b.index) { case 0: break; case 1: StartRecording(); break; case 2: galleryVideo(); break; default: break } }) }} function StartRecording() { //录像 var c = plus.camera.getCamera(); c.startVideoCapture(function(e) { plus.io.resolveLocalFileSystemURL(e, function(entry) { var s = entry.toLocalURL() + "?version=" + new Date().getTime(); Video = s; $("#video").empty(); $("#video").append('<video style="width:50%;height:100px;margin-left:20px" controls> <source src="' + s + '" type="video/mp4" ></video>'); $("#video").append( '<img src="images/1554174919.jpg" width="100px" height="100px" style="margin-left:10px" onclick="ChooseVideo()" />' ); }, function(e) { console.log("读取录像文件错误:" + e.message); }); }, function(s) { console.log("error" + s); }, { filename: "_doc/head.mp4" })} function galleryVideo() { plus.gallery.pick(function(a) { plus.io.resolveLocalFileSystemURL(a, function(entry) { plus.io.resolveLocalFileSystemURL("_doc/", function(root) { root.getFile("head.mp4", {}, function(file) { //文件已存在 file.remove(function() { entry.copyTo(root, 'head.mp4', function(e) { var e = e.fullPath + "?version=" + new Date().getTime(); Video = e; $("#video").empty(); $("#video").append( '<video style="width:50%;height:100px;margin-left:20px" controls> <source src="' + e + '" type="video/mp4" ></video>'); $("#video").append( '<img src="images/1554174919.jpg" width="100px" height="100px" style="margin-left:10px" onclick="ChooseVideo()" />' ); }, function(e) { console.log('copy image fail:' + e.message); }); }, function() { console.log("delete image fail:" + e.message); }); }, function() { //文件不存在 entry.copyTo(root, 'head.mp4', function(e) { Video = e; $("#video").empty(); $("#video").append('<video style="width:50%;height:100px;margin-left:20px" controls> <source src="' + e + '" type="video/mp4" ></video>'); $("#video").append( '<img src="images/1554174919.jpg" width="100px" height="100px" style="margin-left:10px" onclick="ChooseVideo()" />' ); }, function(e) { console.log('copy image fail:' + e.message); }); }); }, function(e) { console.log("get _www folder fail"); }) }, function(e) { console.log("读取文件错误:" + e.message); }); }, function(a) {}, { filter: "video" })};

    是直接录像,录好之后,直接添加在界面中,让其查看。而选择手机的视频,则如下图:

    选择好视频之后,也是直接添加在界面中,让其点击播放。然后就是上传到后台 /// /// 使用手机上传视频 /// ///

    public ActionResult View_UploadEnterpriseVideo() { string VideoPath = ""; //执行新增存储过程,得到返回结果 try { var UploadFile = Request.Files["UploadFile"]; if (UploadFile != null) { //文件类型 后缀 string fileExtension = Path.GetExtension(UploadFile.FileName); //不包含文件扩展名的名称 不带后缀 // string fileName = Path.GetFileNameWithoutExtension(Files[0].FileName); //原始文件名称 // string oldFileName = Files[0].FileName; //文件名称,添加时间字符串,避免文件名称相同 string fileName = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ffff") + fileExtension; if (Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "Upload//Videos//") == false) { Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "Upload//Videos//"); } //保存文件的路径 // string filePath = Server.MapPath("~/Document/Temp/") + fileName; string LocalPath = AppDomain.CurrentDomain.BaseDirectory + "Upload//Videos//" + fileName; //保存文件 UploadFile.SaveAs(LocalPath); VideoPath = "//Upload//Videos//" + fileName; } else { VideoPath = ""; } } catch { VideoPath = ""; } return Json(VideoPath, JsonRequestBehavior.AllowGet); }

    上传成功之后,返回上传的路径,返回前台,进行其他操作。 一开始觉得很难,后来发现上传视频和上传图片也差不多,所以就慢慢进行摸索,网上找了许多的资料都没有相同的例子,所以找已经做过相同功能的人进行学习。

    最新回复(0)