视频Js动态加载源

Mar*_*ths 3 html javascript html5-video video.js

嗨,我有一个具有网格和js视频播放器的应用程序。当前,我正在用SQL数据库中的数据填充网格,单击行时就会有一个函数调用,该调用将调用存储过程并返回url,然后使用该url更改源并更改源。有趣的是,使用基本的html 5视频播放器,我拥有的代码可以正常工作,但不适用于Video JS

我的代码-

function changesource(url) {

    var video = $("#vid1");
    video.src = url;
    document.getElementById('vid1').src = url;


 }
// calls the function for browse 
function getBrowseData() {
$.ajax({
    type: "post",
    data: JSON.stringify({
        archive_header_Key: testdata,
    }),
    url: "/Search.aspx/GetBrowseData",
    dataType: "json",
    contentType: "application/json",
    success: function (object) {
        response(object);
    },
    complete: function (object) {

    },
    error: function (object) {
    }
});
function response(object) {

        var obj = (object.d[0]["browse_file"]);

    var slashReplace = obj.replace(/\\/g, "/");
    var slashFinal = slashReplace.substring(10);
    var browsevalue = GetValue("BrowseServer");
    var slashfinal = "http://" + browsevalue + ":5060" + slashFinal;
    Location = slashfinal;
    $('#p1').text(slashfinal);     


    changesource(slashfinal);
}
Run Code Online (Sandbox Code Playgroud)

}

var Video = ("<video id='vid1' class='video-js vjs-default-skin' controls  preload='none' width='640' height='264' data-setup='{}'><source src=" + Location + "  type='video/mp4'/></video>   <script>var options = { hidden: false }, mplayer = videojs('vid1'); mplayer.rangeslider(options); mplayer.showSlider();</script>");
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激

mis*_*ben 8

如果您使用video.js,则需要使用其API来设置源。初始化video.js播放器后,HTML5视频API将无法正常工作,其id vid元素不是video元素。

var video = videojs("vid1");
video.src(url);
Run Code Online (Sandbox Code Playgroud)

Video.js会推断出一些文件扩展名的视频类型,但最好包含以下类型

video.src({
  type: 'video/mp4',
  src: 'https://example.com/myvideo.mp4'
});
Run Code Online (Sandbox Code Playgroud)