動画の再生が終わったらサイト内のfunction syori()に渡したい
APIリファレンスを見ても adPlayer.on('AdStopped', function(){}); でcallを使え以外の
説明がありません。API公開者がフランスの為、質問を投げてもうまく言葉が伝わらないようで
返信がなく困っています。
現在動画の再生はできております。
function init (api) {
if (api) {
api.on('AdStarted', function()
{console.log('AdStarted')}
);
api.on('AdVideoComplete', function()
{console.log('AdVideoComplete')}
);
adPlayer.on('AdPlaying', function(){});
} else
{ console.log('blank'); }
}
</script>
<script>(function(){var i='〇〇〇〇〇〇〇〇';document.write('<div id="'+i+'"></div>');(playerPro=window.playe||[]).push(i);})();</script>
この動画の再生が終了したらAdStoppedをfunction syori()に閲覧終了を渡したいのですが。
callの使い方が分かってないせいで相当いろいろ試したのですがにわか仕込みでは
うまく動かずご相談させていただいている次第です。
お分かりになる方いらっしゃいましたらご教授いただけると幸いです。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
No1です
話がまったくかみ合っていないようですので、以後、回答は避けますが…
>APIリファレンスを見てもadPlayer.on('AdStopped', function(){}); でcallを使え以外の説明がありません
質問者様が一番情報をお持ちですし、他の者にはヒントも何も無いので、当たるも八卦どころではないですね。
No1にも書きましたように、通常のスクリプトであればcallを用いなくても
adPlayer.on('AdStopped', function(){ syori(); });
で、syori()が呼ばれるのではなかろうかと推察できます。
(仕様を知らないので雰囲気からの推測のみ。スコープ内であることが条件)
>再生は、最初の記述でできていまして
>一度だけ処理なのです。
スクリプトでの処理なので、自由に記述すれば良いだけと思いますが、何らかの制限でもあって自由にならないってことなのでしょうか?
No.1
- 回答日時:
こんにちは
HTMLでブラウザベースということで良いのですよね?
>APIリファレンスを見ても~
何のAPIなのか不明なので、その内容に関してはわかりかねますが…、
なんとなくの雰囲気で、動画の再生の制御と再生終了時に何らかの処理を行いたいものと想像しました。
通常のDOM操作でも、同様のことは可能です。
https://developer.mozilla.org/ja/docs/Web/API/HT …
>callの使い方が分かってないせいで~
呼び出したい処理が関数化されているので、特殊な状況でもない限り、普通にその関数に処理を渡せばよいはずではないでしょうか。
(以下のサンプルでもcall関数を使用していますが、それは、nodListには存在しないindexOfメソッドを利用するという目的で使用しています)
よほど特殊な処理内容でもない限り、素のスクリプトで記述したとしてもさほどのことではないと思いますので、簡単なサンプルを以下に作成してみました。
※ 動画を再生して、終了したら「次の動画に表示を切り替え再生を開始する」処理を繰り返すという単純なものです。
※ 終了時の切替え処理を、一応、function syori()として独立させてあります。
※ 再生が終了する毎に、この関数が呼び出されています。
<!DOCTYPE HTML>
<html lang="ja">
<head><title>Sample</title>
<style type="text/css">
div.box { width:90vw; margin:3vw auto; }
video { width:90vw; height:60vw; display:none; }
video.active { display:block; }
</style>
</head>
<body>
<div class="box">
<video autoplay class="active">
<source src="http://mazwai.com/system/posts/videos/000/000/20 … type="video/mp4">
</video>
<video>
<source src="http://mazwai.com/system/posts/videos/000/000/10 … type="video/mp4">
</video>
<video>
<source src="http://mazwai.com/system/posts/videos/000/000/18 … type="video/mp4">
</video>
<video>
<source src="http://mazwai.com/system/posts/videos/000/000/15 … type="video/mp4">
</video>
</div>
<div>
◇ 処理情報 ◇
<div id="info"></div>
</div>
<script type="text/javascript">
let videos = document.querySelectorAll(".box video");
let info = document.getElementById("info");
videos.forEach((e)=>{
e.muted = true;
e.load();
e.addEventListener("ended", (evt)=>{ syori(evt.target); });
});
function syori(elm){
let n = Array.prototype.indexOf.call(videos, elm);
let m = "No" + (n+1) + " Ended !<br />";
videos[n].classList.remove("active");
videos[n].pause();
videos[n].currentTime = 0;
n = ++n % videos.length;
videos[n].classList.add("active");
videos[n].play();
if(n==0) info.innerHTML = "";
info.innerHTML += m + "No" + (n+1) + " Started !<br />";
}
</script>
</body>
</html>
※ 意味が違っていたなら、スルーしてください。
※ この掲示板ではurl等が短縮表示(=リンク)に変えられてしまいますのでご注意。
※ Fx68、Chrome75にて動作確認しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript jQueryでのレスポンシブが綺麗に動かない 3 2022/06/21 11:08
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リンク付きの画像をクリックす...
-
Selenium4でボタンをクリックで...
-
WebbrowserよりHTMLのValue値を...
-
★大至急!JavaScriptのif文教え...
-
メールを送信するボタンでOutlo...
-
リンク元のURLのパラメータでペ...
-
Selenium Basicの件
-
FullCalendar の複数月表示につ...
-
eval、$.eachで順番が入れ替わ...
-
要素内を常に一番下を表示させたい
-
JQueryの変数の扱いで弱ってい...
-
Ajax・jQueryでGETとPOSTする方法
-
background をフェードしながら...
-
繰り返し処理のシンプルな書き方
-
jquery.csv2table.jsに検索窓
-
インラインフレームを自動更新...
-
マスターページ使用時のJavascript
-
IndexedDB を使ってファイルア...
-
セッション
-
ajax&php post 一部更新
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数にドットをいれることはか...
-
.txtファイルの読み込み
-
[jQuery UI] sortableを使いaja...
-
ajaxでPOSTする変数の変数名を...
-
PHPで動的に生成されるcsvの、...
-
リンク付きの画像をクリックす...
-
jsのreturnで値が返ってこない
-
読み込み開始から読み込み終了...
-
JavaScriptでリンク先コンテン...
-
JavascriptからPHPへのAjax通信...
-
Javascriptを使ってQRコード読...
-
Selenium4でボタンをクリックで...
-
要素内を常に一番下を表示させたい
-
jQueryを使いformでsubmitした...
-
同一ページ移動時ハンバーガー...
-
階層別の組織図の自動作成について
-
JavaScriptでtabindexの変更っ...
-
Googleマップに複数のピンを立...
-
SQLのmaxで求めた値を変数に代...
-
パソコンで動くjavascriptがス...
おすすめ情報
回答ありがとうございます。
ビデオというか動画広告なのですが
再生は、最初の記述でできていまして
一度だけ処理なのです。
再生の終了時にadPlayer.on('AdStopped',
function(){});を使うとAPIよりadstoppedが
出るんだと思うんですがそれを
function syori()に渡したいのです。