WeChatミニプログラムビデオ集中砲火位置ランダム

WeChatミニプログラムビデオ集中砲火位置ランダム

この記事では、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 を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • WeChatアプレットが弾丸画面を送信するビデオプレーヤーを実装
  • WeChatアプレットに動画連打送信機能を実装
  • WeChatアプレット開発ビデオプレーヤービデオ弾幕弾幕カラーカスタマイズ例
  • WeChatミニプログラムvidaoはビデオ再生と連打の機能を実現します

<<:  MySQL 5.7.21 解凍版のインストールと設定方法のグラフィックチュートリアル (win10)

>>:  SSL で Nginx リバース プロキシを構成する簡単な手順

推薦する

HTML ハイパーリンク スタイル (4 つの異なる状態) の設定例

コードをコピーコードは次のとおりです。 <スタイル タイプ="text/css&qu...

Mysql systemctl start mysqld によって報告されるエラーの解決策

エラーメッセージ:制御プロセスがエラー コードで終了したため、mysqld.service のジョブ...

JavaScript の矢印関数と通常の関数の違いの詳細な説明

この記事では、JavaScriptにおけるアロー関数と通常の関数の違いについて解説します。具体的な内...

単一の Nginx IP アドレスに複数の SSL 証明書を設定する例

デフォルトでは、Nginx は IP アドレスごとに 1 つの SSL 証明書のみをサポートします。...

Vue は検証コードのカウントダウンボタンを実装します

この記事では、検証コードカウントダウンボタンを実装するためのVueの具体的なコードを例として紹介しま...

Docker イメージ + nginx を使用して Vue プロジェクトをデプロイする方法

1. Vueプロジェクトのパッケージ化開発されたvueプロジェクトに次の名前を入力し、パッケージ化し...

Chrome デベロッパー ツールの詳細な紹介 - タイムライン

1. 概要ユーザーは、アクセスする Web アプリケーションがインタラクティブでスムーズに実行される...

私が遭遇したIE8の互換性に関する注意事項

1. IE8 の getElementById は id のみをサポートし、name はサポートしま...

Web ページのスクロール バーが右側に設定されているのはなぜですか?

私たちが毎日使っているブラウザや Word 文書のスクロール バーはなぜ右側にあるのでしょうか。多く...

Linux で crond ツールを使用してスケジュールされたタスクを作成する方法

序文Crond は Linux のスケジュール実行ツール (Windows のスケジュールされたタス...

Docker Compose で利用可能な環境変数の詳細な説明

Compose のいくつかの部分は、何らかの方法で環境変数を扱います。このチュートリアルは、必要な情...

Websocket に基づくシンプルなチャットルームダイアログの実装

この記事では、WebSocketを使用して簡単なチャットルームの会話を実装するための具体的なコードを...

CentOS8.0 で FTP サーバーをインストールして設定する方法

CentOS8.0-1905 のリリース後、FTP サーバーを CentOS の新しいバージョンに移...

リンクAの意味論、書き方、ベストプラクティス

リンク A のセマンティクス、ライティング スタイル、およびベスト プラクティス。私は JavaEy...

コード標準では、SQL ステートメントに結合が多すぎないようにする必要があるのはなぜですか?

無料ポイントインタビュアー:Linuxを使ったことはありますか?私:はいインタビュアー:メモリ使用量...