微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将媒体对象从视图发布到控制器

如何解决将媒体对象从视图发布到控制器

我需要将mediaStreamObj从View发布到Controller,并将其存储在VarBinary的sql Server中。后来,varBinary数据被传递到其他应用程序以进行流传输。在当前核心中,流数据为空。请帮助我在流中传递实际数据以将其保存在数据库中,并在其他应用中使用它进行流处理

JavaScript代码

let startRecord = document.getElementById("startrecord");
let stopRecord = document.getElementById("stoprecord");
let liveVideo = document.getElementById("livevideo");

let constraintObj = {
    audio: true,video: true
};

navigator.mediaDevices
.getUserMedia(constraintObj)
        .then(function (mediaStreamObj) {
            liveVideo.srcObject = mediaStreamObj;
            liveVideo.play();

            let mediaRecorder = new MediaRecorder(mediaStreamObj);
            let chunks = [];

            startRecord.addEventListener("click",ev => {
                mediaRecorder.start();
            });
            stopRecord.addEventListener("click",ev => {
                mediaRecorder.stop();
            });
            mediaRecorder.ondataavailable = function (ev) {
                chunks.push(ev.data);
            }
            mediaRecorder.onstop = function () {                
                let blob = new Blob(chunks,{ 'type': 'video/mp4' });
                HttpPost(blob);
                chunks = [];
            }
        })
        .catch(function () {
            console.log("Error");
        })

function HttpPost(blob) {    
    let params = {
         VideoStream: blob,VideoType: 'video/mp4'
    };

    //var formData = new FormData()
    //formData.append('VideoStream',blob)
    //formData.append('VideoType','video/mp4')

    $.ajax({
        type: "POST",url: "/Home/Load/",data: params,success: function (msg) {       
        },error: function (err) {
            alert(err);
        }
    });  
}

MVC-C#

[HttpPost]
public string Load(VideoModel video)
{
    return View();
}

public class VideoModel
{
    public string VideoType { get; set; }
    public Stream VideoStream { get; set; }
}

HTML

<button id="startrecord" 
    class="btn btn-outline-danger btn-lg btn-block" >Record</button>
<button id="stoprecord" 
    class="btn btn-outline-info btn-lg btn-block" >Stop</button>

<video id="livevideo" controls></video>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。