- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试(已经几天)完成非常简单的任务:构建一个 javascript 文件,捆绑所有必要的部分以使用 Google IMA 广告播放视频,但我仍然面临一些错误(主要是 player.ads not function
) 总是以某种方式连接到错误注册的插件。我感谢任何建议。谢谢。
编辑:这个问题是 already reported ,但标记为优先级 3,我没有时间等待。我相信还有另一种解决方案。
EDIT2:在上面的链接中报告此问题的那个人似乎已经提供了合适的解决方案。现在只剩下尝试了..如果可行,我将其作为答案发布。
入口文件:
/*jshint esversion: 6 */
/*jshint -W030 */
let ima_script = document.createElement('script');
ima_script.type = "text/javascript";
ima_script.src = "https://imasdk.googleapis.com/js/sdkloader/ima3.js";
document.getElementsByTagName('head')[0].appendChild(ima_script);
videojs = require('video.js');
require('videojs-contrib-ads');
require('videojs-ima');
require('videojs-youtube');
require('videojs-contrib-hls');
Array.from(document.getElementsByTagName('video'))
.forEach(videojs);
ima_script.onload = function() {
google.ima.settings.setLocale('cs');
let players = videojs.players;
for (let id in players) {
(players.hasOwnProperty(id) ? players[id].ima({
id: id,
adTagUrl: 'https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator=',
disableFlashAds: true
}):'');
}
};
gulpfile.js:
var browserify = require('browserify');
var babelify = require('babelify');
var buffer = require('vinyl-buffer');
var concat = require('gulp-concat');
var css2js = require('gulp-css-to-js');
var cssnano = require('gulp-cssnano');
var del = require('del');
var gulp = require('gulp');
var ignore = require('gulp-ignore');
var jshint = require('gulp-jshint');
var path = require('path');
var runSequence = require('run-sequence');
var size = require('gulp-size');
var mergeStream = require('merge-stream');
var source = require('vinyl-source-stream');
var sourcemaps = require('gulp-sourcemaps');
var uglify = require('gulp-uglify');
var distPath = path.join(path.normalize('__dirname/../dist'), '/');
gulp.task('build', function (done) {
runSequence(
'clean',
'lintjs',
'build-bundle',
function (error) {
if (error) {
console.log(error.message.red);
} else {
console.log('BUILD FINISHED SUCCESSFULLY'.green);
}
done(error);
});
});
gulp.task('clean', function (done) {
del.sync([distPath], {force: true});
done();
});
gulp.task('lintjs', function() {
return gulp.src([
'gulpfile.js',
'src/**/*.js',
'build/**/*.js'
])
.pipe(jshint())
.pipe(jshint.reporter('jshint-stylish'));
});
gulp.task('build-bundle', function () {
var videoJS = browserify({
entries: 'src/entryfile.js',
//debug: true,
paths: ['./node_modules'],
cache: {},
packageCache: {}
})
.transform(babelify)
.bundle()
.pipe(source('outputfile.js'))
.pipe(buffer());
var videoCss = gulp.src('node_modules/video.js/dist/video-js.css')
.pipe(cssnano())
.pipe(css2js());
var imaCss = gulp.src('node_modules/video-ima/dist/videojs.ima.css')
.pipe(cssnano())
.pipe(css2js());
return mergeStream(videoCss, imaCss, videoJS)
.pipe(concat('video.bundle.js'))
/*
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(uglify({compress: false})) // compress needs to be false otherwise it mess the sourcemaps
.pipe(sourcemaps.write('.'))*/
.pipe(gulp.dest(distPath))
.pipe(size({showFiles: true, title: '[VideoJS+Plugin Bundle]'}));
});
package.json:
{
"name": "videojs-ima-bundle",
"version": "0.1.0",
"authors": [
"John Wick <john.wick@gmail.com>"
],
"description": "video.js bundle",
"main": "src/entryfile.js",
"repository": {},
"keywords": [
"vpaid",
"html5",
"vast",
"videojs",
"js",
"video",
"iab",
"youtube"
],
"scripts": {
"gulp": "gulp build"
},
"author": "John Wick <john.wick@gmail.com>",
"license": "MIT",
"devDependencies": {
"babel-core": "*",
"babelify": "*",
"browserify": "^13.0.0",
"browserify-istanbul": "^0.2.1",
"colors": "^1.1.0",
"del": "^2.2.0",
"gulp": "^3.9.0",
"gulp-concat": "^2.6.1",
"gulp-css-to-js": "^0.0.2",
"gulp-cssnano": "^2.1.0",
"gulp-ignore": "^2.0.2",
"gulp-jshint": "^2.0.0",
"gulp-size": "^2.0.0",
"gulp-sourcemaps": "^1.6.0",
"gulp-uglify": "^1.2.0",
"jshint": "^2.9.1",
"jshint-stylish": "^2.1.0",
"merge-stream": "^1.0.1",
"run-sequence": "^1.1.0",
"uglifyify": "^3.0.1",
"video.js": "6.x",
"videojs-contrib-ads": "*",
"videojs-contrib-hls": "*",
"videojs-ima": "^1.0.3",
"videojs-youtube": "*",
"vinyl-buffer": "^1.0.0",
"vinyl-source-stream": "^1.1.0"
}
}
最佳答案
根据 EDIT2,这只是使其工作的修改:
修改了 Entryfile 的 require 部分:
videojs = require('video.js');
var contribAds = require('videojs-contrib-ads');
videojs.registerPlugin('ads', contribAds);
require('video.js/dist/lang/cs.js')
require('videojs-youtube');
require('videojs-contrib-hls');
require('videojs-ima');
编辑
注册 contrib-ads 插件在 v6 中被“修复”。现在你应该简单地使用:
require('videojs-contrib-ads');
关于javascript - 将 videojs 与 videojs-ima 插件捆绑在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48267963/
我有一个要提交的 iOS 应用程序,我的应用程序在我的 iPhone 上运行。我将 apple id 帐户添加到 Xcode 并在 Xcode 的常规部分下输入我的 bundle id,然后单击“修复
我有一个SDK项目,它在gradle中引用了很多依赖项。我必须要求SDK用户在项目中使用SDK时添加这些依赖项。问题是,每当我添加一些新的依赖项或将当前的依赖项替换为新的依赖项时,我都必须要求用户进行
我使用 Microsoft.AspNet.Web.Optimization用于 css 和 js 捆绑和缩小的 nuget 包。 我在这个路径 ~/bundles/shared.css 中创建了一个包
我使用 laravel-mix(包括 webpack)来打包 JS 文件。使用 BundleAnalyzerPlugin,我发现我的输出文件包含多个 JQuery 库副本,这增加了输出文件的大小。 它
我正在使用 maven felix 插件来创建 OSGi 包,但是假设您有一个包“com.example”存在于project1和project2中。此外,project2 依赖于 project1。
当我尝试捆绑我的 Meteor 应用程序时,我得到: $ meteor bundle app.tgz Errors prevented bundling: Exception while bundli
因此查看 bundleconfig.cs 它应该允许基于设备类型进行捆绑。唯一的问题是因为它在 App_Start 中,所以不允许我访问 Request 对象。有什么想法可以实现基于设备的捆绑吗? 最
上下文 http://news.ycombinator.com/item?id=4125530 问题: 这是否最终意味着 Java 应用程序将能够发布到 Mac 商店? (因为 JRE 自动捆绑到应用
我正在尝试为一个 React/Redux 项目创建我自己的 Webpack 配置。配置看起来很好,但是包的大小很大(在开发模式下,我知道如何在生产模式下减少它) 我的 package.json 看起来
所以我一直收到这个 Bundle ID 错误,说它不可用而且我真的不知道如何修复它。这是错误: 提供的数据有误。请更正并重新提交。标识符为“com.team.AppName”的 App ID 不可用。
我正在浏览 SO 并找到了 some code这向我提出了一个问题。 struct node* BuildOneTwoThree() { struct node *list = malloc(3 *
我正在为 Delphi XE7 使用 intraweb XIV 捆绑版。当我在这个新的捆绑版本中测试一个 intraweb XII 应用程序时,SSL/TLS 不工作。捆绑版本不支持 SSL/TLS?
预期: 当我使用 webpack 构建时,我的所有 JS 文件都会被捆绑,除了 ./src/Portfolio 目录中的文件(根据我的 Webpack.config.js 设置)。 实际: Webpa
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 7 年前。 Improve
我有一个项目引用了许多开源库,有些是新的,有些不是很新。也就是说,它们都很稳定,我希望坚持使用我选择的版本,直到我有时间迁移到更新的版本(我昨天测试了 hsqldb 2.0,它包含许多 api 更改)
我正在创建一个 REST API,并且我一直在研究允许捆绑来自客户端的请求的想法。我所说的捆绑是指他们可以发送一个包含多个“真实”请求的请求,然后将它们一起交付给客户。通常是 javascript a
在我的 AngularJS 项目中,我有一个 HTML 模板,其中 innerText 位于新行中: Click here 我正在使用 webpack 作为我的捆绑器。我希望它 trim
我已经为我的应用程序创建了一个静态库。现在,我的应用程序使用我在应用程序中引用的 plists 和图像等来源。 如何捆绑这些图像并将它们与静态库一起交付,以及我需要在源加载代码中进行哪些更改才能从该
所以, 我是 webpack 的新手,我正在开发一个项目,在该项目中我们只加载一个文件 bundle.js,我知道我可以单独加载文件。 但我想要的是bundle.js中未缩小的文件。目前我正在获取缩小
如何使用用户区域设置登录路径?我试过了 check_path: /{_locale}/login_check 和 check_path: /(en|ru)/login_check 但什么也没有
我是一名优秀的程序员,十分优秀!