この記事では、WeChatミニプログラムのビデオ弾幕の位置をランダム化するための具体的なコードを紹介します。具体的な内容は次のとおりです。 最近開発ツールが更新された後、WeChatミニプログラム動画の集中砲火は自動的にランダムではなくなったため、巧妙な方法が使用されました(送信したい集中砲火と一緒に複数の空の集中砲火を送信し、乱数を使用して順序を制御します)。 wxml コード <!--pages/study/video/videoplay/videoplay.wxml--> <view class="page-body"> <view class="page-section tc"> <ビデオ id="myVideo" src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400" binderror="videoErrorCallback" danmu-list="{{danmuList}}" 有効にする ダンム-btn 表示センター再生ボタン='{{false}}' 再生ボタンを表示 = "{{true}}" コントロール ピクチャーインピクチャーモード="{{['push', 'pop']}}" bindenterpictureinpicture='bindVideoEnterPictureInPicture' bindleavepictureinpicture='bindVideoLeavePictureInPicture' </ビデオ> <view style="margin: 30rpx auto" class="weui-label">箇条書きコメントの内容</view> <input bindblur="bindInputBlur" class="weui-input" type="text" placeholder="ここに箇条書きの内容を入力してください" /> <button style="margin: 30rpx auto" bindtap="bindSendDanmu" class="page-body-button" type="primary" formType="submit">Danmu を送信</button> <navigator style="margin: 30rpx auto" url="picture-in-picture" hover-class="other-navigator-hover"> <button type="primary" class="page-body-button" bindtap="bindPlayVideo">小さいウィンドウモード</button> </ナビゲーター> </ビュー> </ビュー> jsコード // ページ/study/video/videoplay/videoplay.js var それ; 関数 getRandomColor() { 定数rgb = [] (i = 0; i < 3; ++iとします) { color = Math.floor(Math.random() * 256).toString(16) とします。 色 = 色.長さ === 1 ? '0' + 色 : 色 rgb.push(色) } '#' + rgb.join('') を返します } ページ({ onShareAppMessage() { 戻る { タイトル:「ビデオ」、 パス: 'page/component/pages/video/video' } }, 準備完了() { それ = これ; this.videoContext = wx.createVideoContext('myVideo') }, オン非表示() { }, 入力値: ''、 データ: { ソース: ''、 danmuリスト: [{ テキスト: '最初の箇条書きコメント'、 色: '#ff0000', 時間: 1 }, { テキスト: 「3秒目に現れた弾幕」 色: '#ff00ff', 時間: 3 }], }, バインド入力ブラー(e) { this.inputValue = e.detail.value }, バインドボタンタップ() { const that = this wx.chooseVideo({ ソースタイプ: ['アルバム', 'カメラ'], 最大持続時間: 60, カメラ: ['前面', '背面'], 成功(res) { that.setData({ ソース: res.tempFilePath }) } }) }, バインドビデオ入力ピクチャインピクチャ() { console.log('小さいウィンドウモードに入る') }, バインドビデオを画像内に残す(){ console.log('小さいウィンドウモードを終了') }, バインド再生ビデオ() { this.videoContext.play() }, バインド送信ダンム() { // ループと乱数を使用して位置を調整します var ranNum = Math.floor(Math.random()*10); var danmuList = []; (インデックス = 0、インデックス < 10、インデックス++) { danmuList.push(''); } danmuList[ranNum] = this.inputValue; for (let index = 0; index < danmuList.length; index++) { this.videoContext.sendDanmu({ テキスト: danmuList[インデックス], 色: '#ff0000' }); } }, ビデオエラーコールバック(e) { console.log('ビデオエラーメッセージ:') コンソールログ(e.detail.errMsg) } }) 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL 5.7.21 解凍版のインストールと設定方法のグラフィックチュートリアル (win10)
>>: SSL で Nginx リバース プロキシを構成する簡単な手順
1. SQLを実行して表示する @@session.sql_mode を選択します。 グローバルレベ...
MACでMySQLの初期パスワードを忘れた問題を解決する方法を参考までに共有します。具体的な内容は次...
目次前面に書かれた解決策 1: グローバル スタイル オーバーライドを使用する (フロントエンドに共...
仕事ではリモート サーバーが必要になることが多く、次の 2 つの問題に遭遇することがよくあります。 ...
目次オーディオトランスコーディングツール原理JAVE プロジェクトの問題このプロジェクトの特徴拡張機...
文字列関数文字ascii(str)のASCIIコード値をチェックし、strが空の文字列の場合は0を返...
zabbix を利用する上での最大のボトルネックはデータベースです。zabbix のデータストレージ...
序文2 つのテーブル内の同じフィールドの型が異なっていたり、エンコード タイプが異なっていたりするた...
ホストとコンテナ間でファイルを転送するには、コンテナの完全な ID が必要です。取得方法は以下の通り...
Docker を使用して、柔軟なオンライン PHP 環境を構築します。場合によっては、他の人がすでに...
Linux の scp コマンド (Windows では scp は使用できません) と、mysql...
これらの 3 つのタグを間違った方法で使用して、タイトルを表に沿わせたり、tbody の高さを固定し...
良いアイデアを見つけたので記録しました。私は以前、スクロール効果を実現するためにjQueryを使用し...
目次1 SSHとは何か2 SSHパスワードフリーログインを設定する2.1 必要なソフトウェアのインス...
要素UIとはelement-ui は、Ele.me のフロントエンド チームが開発者、デザイナー、製...