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 リバース プロキシを構成する簡単な手順

推薦する

MySQL sql_modeクエリと設定の詳細な説明

1. SQLを実行して表示する @@session.sql_mode を選択します。 グローバルレベ...

MAC 上の MySQL の初期パスワードを忘れた場合の対処方法

MACでMySQLの初期パスワードを忘れた問題を解決する方法を参考までに共有します。具体的な内容は次...

VueとElementUIを組み合わせたスキン変更ソリューション

目次前面に書かれた解決策 1: グローバル スタイル オーバーライドを使用する (フロントエンドに共...

Windows Server 2008 R2 マルチユーザー リモート デスクトップ接続ライセンス

仕事ではリモート サーバーが必要になることが多く、次の 2 つの問題に遭遇することがよくあります。 ...

WeChat パブリック アカウントの録音ファイルを再生して保存します (amr ファイルを mp3 に変換)

目次オーディオトランスコーディングツール原理JAVE プロジェクトの問題このプロジェクトの特徴拡張機...

MySql 組み込み関数の自習知識ポイントまとめ

文字列関数文字ascii(str)のASCIIコード値をチェックし、strが空の文字列の場合は0を返...

MySQL 最適化 Zabbix パーティション最適化

zabbix を利用する上での最大のボトルネックはデータベースです。zabbix のデータストレージ...

MYSQL 文字列強制変換メソッドの例

序文2 つのテーブル内の同じフィールドの型が異なっていたり、エンコード タイプが異なっていたりするた...

Dockerコンテナとローカルマシン間でファイルを転送する方法

ホストとコンテナ間でファイルを転送するには、コンテナの完全な ID が必要です。取得方法は以下の通り...

PHP環境構築におけるDockerの柔軟な実装

Docker を使用して、柔軟なオンライン PHP 環境を構築します。場合によっては、他の人がすでに...

ローカルのMySQLをサーバーデータベースに移行する方法

Linux の scp コマンド (Windows では scp は使用できません) と、mysql...

thead、tfoot、tbodyを使用して表を作成します

これらの 3 つのタグを間違った方法で使用して、タイトルを表に沿わせたり、tbody の高さを固定し...

jQuery をベースにリスト ループ スクロールを実装するためのヒント (超簡単)

良いアイデアを見つけたので記録しました。私は以前、スクロール効果を実現するためにjQueryを使用し...

Linux 構成 SSH パスワードフリーログイン「ssh-keygen」の基本的な使い方

目次1 SSHとは何か2 SSHパスワードフリーログインを設定する2.1 必要なソフトウェアのインス...

element-ui 写真をアップロードした後、座標点をマークします

要素UIとはelement-ui は、Ele.me のフロントエンド チームが開発者、デザイナー、製...