Attempt to fix YouTube message error, added ads references, changes to bool

This commit is contained in:
Sam Potts
2018-01-25 22:41:30 +11:00
parent b4e22e2e7b
commit 5e68f8c8dd
16 changed files with 73 additions and 26 deletions

View File

@ -363,9 +363,10 @@ const defaults = {
google: null,
},
// Ads
// Advertisements plugin
// Tag is not required as publisher is determined by vi.ai using the domain
ads: {
tag: null,
enabled: false,
},
};

View File

@ -8,6 +8,22 @@
import utils from '../utils';
// Build the default tag URL
const getTagUrl = () => {
const params = {
AV_PUBLISHERID: '58c25bb0073ef448b1087ad6',
AV_CHANNELID: '5a0458dc28a06145e4519d21',
AV_URL: '127.0.0.1:3000',
cb: 1,
AV_WIDTH: 640,
AV_HEIGHT: 480,
};
const base = 'https://go.aniview.com/api/adserver6/vast/';
return `${base}?${utils.buildUrlParams(params)}`;
};
class Ads {
/**
* Ads constructor.
@ -16,9 +32,9 @@ class Ads {
*/
constructor(player) {
this.player = player;
this.enabled = player.config.ads.enabled;
this.playing = false;
this.initialized = false;
this.enabled = utils.is.url(player.config.ads.tag);
// Check if a tag URL is provided.
if (!this.enabled) {
@ -122,7 +138,7 @@ class Ads {
// Request video ads
const request = new google.ima.AdsRequest();
request.adTagUrl = this.player.config.ads.tag;
request.adTagUrl = getTagUrl();
// Specify the linear and nonlinear slot sizes. This helps the SDK
// to select the correct creative if multiple are returned

View File

@ -108,8 +108,8 @@ const youtube = {
playsinline: 1, // Allow iOS inline playback
// Tracking for stats
origin: window && window.location.hostname,
widget_referrer: window && window.location.href,
// origin: window ? `${window.location.protocol}//${window.location.host}` : null,
widget_referrer: window ? window.location.href : null,
// Captions are flaky on YouTube
cc_load_policy: player.captions.active ? 1 : 0,

View File

@ -309,11 +309,14 @@ class Plyr {
* Play the media, or play the advertisement
*/
play() {
// Play the ad if setup
// TODO: Fix the occasional play of the video before the Ad fires?
if (this.ads.enabled && !this.ads.initialized) {
this.ads.play();
}
this.media.play();
// Return the promise (for HTML5)
return this.media.play();
}
/**