背景:这几天我在使用使用angular4做项目,由于也是才接触angular和typescript所以遇到不少的问题。这是刚才解决一个的引用外部插件编译出错的问题。
问题描述:
使用的插件名称:jwplayer.js
插件作用:视频播放插件
第一步:使用npm start编译并且开服务
图片描述
Angular4使用经验之:jwplayer插件运用到angular4插件普适法 - 877430318 - 上善若水的博客
可以看到现在服务以及启动成功,接下来引入jwplayer插件

第二步:引入并使用jwplayer插件
图片描述
Angular4使用经验之:jwplayer插件运用到angular4插件普适法 - 877430318 - 上善若水的博客
可以看到现在表示路径不对,我把路径改好,是不是就可以了啦?

第三步:修改路径
图片描述
Angular4使用经验之:jwplayer插件运用到angular4插件普适法 - 877430318 - 上善若水的博客
下载看来基本功能是实现了?能够播放视频了吧。是的,在这种情况下可以好像是可以使用插件了。
但,如果将 npm start 开的服务器关了,在从新开,看是什么情况。

第四步,重启服务
图片描述
Angular4使用经验之:jwplayer插件运用到angular4插件普适法 - 877430318 - 上善若水的博客
结果是找不到jwplayer,报了错。。。
既然报了错就想解决办法,一般嘛想,如果在ts中引入出问题,那我直接在html中使用script行吗

第五步,在html中使用script引入
图片描述
Angular4使用经验之:jwplayer插件运用到angular4插件普适法 - 877430318 - 上善若水的博客
可以看到,虽然编译的使用没有报错了,把服务给开起来了,但是在<div id="player-container"></div>这个标签里面什么都没有,也就是jwplayer.js其实没有被引入进来,这个

<script src="app/assets/lib/jwplayer/jwplayer.js"></script>
<script>
    jwplayer('player-container').setup({         
        flashplayer: 'app/assets/lib/jwplayer/jwplayer.flash.swf',
        file: 'http://scvideo.sheencity.com/smart/Mars-M-01.mp4',
        image: 'app/assets/img/player-cover.jpg',
        width: '100%',
        autostart: 'false',
        controlbar: 'bottom',
        primary: "html5",
        aspectratio: '10:6',
        dock: false
    });
</script>

代码什么事也没干,就想没有它一样。
既然这样不行,我就继续想办法,我就想现在是这个script标签没有效果,如果它生效那是不是这个播放插件就可以用了?

第六步:让script标签生效
图片描述
注意:现在在jwplayer.js中的路径'jwplayer.html5.js',我又把它改回来了,不然路径又不对头了。总之就是这样就是对的了,不用去改jwplayer原生代码。
而且重启服务也可以的。。。
关键代码:

/**
* 使用计时器,解决插件使用问题
*/
var oScript1 = document.createElement("script"),
    oScript2 = document.createElement("script");
oScript1.src = "app/assets/lib/jwplayer/jwplayer.js";
oScript2.innerHTML = `
    var timer = setInterval(function() {
        if(window.jwplayer) {
            /**
            * 首页视屏播放
            */
            var player = jwplayer('player-container').setup({
                flashplayer: 'app/assets/lib/jwplayer/jwplayer.flash.swf',
                file: 'http://scvideo.sheencity.com/smart/Mars-M-01.mp4',
                image: 'app/assets/img/player-cover.jpg',
                width: '100%',
                height: '100%',
                autostart: 'false',
                controlbar: 'bottom',
                primary: "html5",
                aspectratio: '10:6',
                dock: false
            });
            clearInterval(timer);
        }
    }, 30);
    `;
document.body.appendChild(oScript1);
document.body.appendChild(oScript2);

总结:jwplayer插件可以通过这种方法得到使用,那其它的插件肯定就也是可以的哪,好吧一个新手在这儿自沾自喜。。
终于搞完了,如果哪儿不对头,或者有其它好方法,请大家一定给我说说。。谢谢哈


听风语
73 声望0 粉丝