この記事では、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 リバース プロキシを構成する簡単な手順
コードをコピーコードは次のとおりです。 <スタイル タイプ="text/css&qu...
エラーメッセージ:制御プロセスがエラー コードで終了したため、mysqld.service のジョブ...
この記事では、JavaScriptにおけるアロー関数と通常の関数の違いについて解説します。具体的な内...
デフォルトでは、Nginx は IP アドレスごとに 1 つの SSL 証明書のみをサポートします。...
この記事では、検証コードカウントダウンボタンを実装するためのVueの具体的なコードを例として紹介しま...
1. Vueプロジェクトのパッケージ化開発されたvueプロジェクトに次の名前を入力し、パッケージ化し...
1. 概要ユーザーは、アクセスする Web アプリケーションがインタラクティブでスムーズに実行される...
1. IE8 の getElementById は id のみをサポートし、name はサポートしま...
私たちが毎日使っているブラウザや Word 文書のスクロール バーはなぜ右側にあるのでしょうか。多く...
序文Crond は Linux のスケジュール実行ツール (Windows のスケジュールされたタス...
Compose のいくつかの部分は、何らかの方法で環境変数を扱います。このチュートリアルは、必要な情...
この記事では、WebSocketを使用して簡単なチャットルームの会話を実装するための具体的なコードを...
CentOS8.0-1905 のリリース後、FTP サーバーを CentOS の新しいバージョンに移...
リンク A のセマンティクス、ライティング スタイル、およびベスト プラクティス。私は JavaEy...
無料ポイントインタビュアー:Linuxを使ったことはありますか?私:はいインタビュアー:メモリ使用量...