Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'package:flutter/material.dart';
- import 'package:webview_flutter/webview_flutter.dart';
- void main() {
- runApp(VideoAdApp());
- }
- class VideoAdApp extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
- return MaterialApp(
- title: 'Revive VAST Ad Demo',
- theme: ThemeData(primarySwatch: Colors.blue),
- home: VideoAdPage(),
- );
- }
- }
- class VideoAdPage extends StatefulWidget {
- @override
- _VideoAdPageState createState() => _VideoAdPageState();
- }
- class _VideoAdPageState extends State<VideoAdPage> {
- late final WebViewController _controller;
- final String _htmlContent = '''
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
- <title>VAST Ad</title>
- <link href="https://vjs.zencdn.net/8.10.0/video-js.css" rel="stylesheet" />
- <script src="https://vjs.zencdn.net/8.10.0/video.min.js"></script>
- <script src="https://imasdk.googleapis.com/js/sdkloader/ima3.js"></script>
- <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/videojs-contrib-ads.min.js"></script>
- <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/videojs.ima.min.js"></script>
- <style>
- html, body {
- margin: 0;
- padding: 0;
- background-color: black;
- height: 100%;
- width: 100%;
- }
- #video-wrapper {
- display: flex;
- justify-content: center;
- align-items: center;
- height: 100vh;
- width: 100vw;
- overflow: hidden;
- }
- video {
- width: 100%;
- max-width: 100%;
- height: auto;
- }
- </style>
- </head>
- <body>
- <div id="video-wrapper">
- <video id="inline-video" class="video-js vjs-default-skin" controls playsinline preload="auto">
- <source src="https://storage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" type="video/mp4" />
- </video>
- </div>
- <script>
- var player = videojs('inline-video');
- player.ima({
- id: 'inline-video',
- adTagUrl: 'https://ads.orderi.co/www/delivery/fc.php?script=apVideo:vast2&zoneid=16&cb=' + Date.now(),
- debug: true,
- adsRenderingSettings: {
- enablePreloading: true,
- uiElements: ['skip']
- }
- });
- player.ready(function () {
- player.ima.initializeAdDisplayContainer();
- player.ima.requestAds();
- });
- </script>
- </body>
- </html>
- ''';
- @override
- void initState() {
- super.initState();
- _controller = WebViewController()
- ..setJavaScriptMode(JavaScriptMode.unrestricted)
- ..loadHtmlString(_htmlContent);
- }
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- appBar: AppBar(title: Text('VAST Video Ad')),
- body: WebViewWidget(controller: _controller),
- );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement