我正在设置一个快速演示,在其中我需要显示两个广告,我加载所有依赖的视频to播放器,并点击链接。
<!-- Load dependent stylesheets. -->
<link rel="stylesheet" href="//googleads.github.io/videojs-ima/node_modules/video.js/dist/video-js.min.css" />
<link rel="stylesheet" href="//googleads.github.io/videojs-ima/node_modules/videojs-contrib-ads/dist/videojs.ads.css" />
<link rel="stylesheet" href="//googleads.github.io/videojs-ima/dist/videojs.ima.css" />
<video id="content_video" class="video-js vjs-default-skin"
controls preload="auto" width="780" height="440">
<source src="https://storage.googleapis.com/gvabox/media/samples/android.mp4"
type="video/mp4" />
</video>
<div onclick="Select(2)">ad 1</div>
<div onclick="Select(1)">ad 2</div>
<!-- Load dependent scripts -->
<script src="//googleads.github.io/videojs-ima/node_modules/video.js/dist/video.min.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/ima3.js"></script>
<script src="//googleads.github.io/videojs-ima/node_modules/videojs-contrib-ads/dist/videojs.ads.min.js"></script>
<script src="//googleads.github.io/videojs-ima/dist/videojs.ima.js"></script>对此,我使用以下JS
var player = videojs('content_video');
function Select(number) {
if (number == 1) {
var options = {
id: 'content_video',
adTagUrl: 'ad1.xml'
};
player.ima(options);
player.load();
}
if (number == 2) {
var options = {
id: 'content_video',
adTagUrl: 'ad2.xml'
};
player.ima(options);
player.load();
}
}现在,当页面加载时,它会播放默认的android视频,当我单击ad1,播放器重新加载和播放广告时,但是当我单击第二个广告(没有必要按这个顺序)时,我会得到一个错误。
Uncaught TypeError:player.ima is not a function我知道我只能加载player.ima一次,所以在这种情况下,我将如何更新选项并重新加载播放器,以便在广告之间切换。
发布于 2021-12-09 02:53:55
这是因为player.ima不能被多次调用。您第一次单击时正在工作,因为ima只被调用一次。第二次我已经存在了。
有关详细信息,请参阅下面的github链接。https://github.com/videojs/videojs-contrib-ads/issues/345
https://stackoverflow.com/questions/66689461
复制相似问题