この記事では、シンプルな HTML ビデオ プレーヤーを実装する方法を紹介し、皆さんと共有します。詳細は次のとおりです。 ファイルリスト root@tianshl:/data/video# ls hch.mp4 test.mp4 xyx.mp4 index.html video.list jquery.js インデックス.html <!DOCTYPE html> <html> <ヘッド> <メタ文字セット="UTF-8"> <スタイル タイプ="text/css"> 体{ テキスト配置: 中央; } #コンテンツラップ{ 上マージン: 50px; 表示: インラインブロック; } #コンテンツ{ ディスプレイ: フレックス; } /* プレイヤー */ #ビデオ{ 表示: インラインブロック; マージン: 0; 境界線: 12px 実線 #eee; ボックスのサイズ: 境界線ボックス; } .ビデオリストラップ{ 背景色: #eee; 右境界線: 1px 実線 #fff; } /* ビデオリスト */ .ビデオリスト{ 表示: インラインブロック; ボックスのサイズ: 境界線ボックス; マージン: 0; 幅: 150ピクセル; リストスタイル: なし; パディング: 0; オーバーフロー:自動; フォントサイズ: 12px; } /* リスト項目 */ .ビデオアイテム{ カーソル: ポインタ; 幅: 150ピクセル; ボックスのサイズ: 境界線ボックス; テキスト配置: 左; パディング: 5px 0 5px 10px; } .video-item:not(:last-child){ 下境界線: 1px 実線 #fff; } .video-item:hover、.active{ 背景色: #ddd; 色: #333; } /* ビデオリストのタイトル */ .ビデオタイトル{ 背景色: ゲインズボロ; フォントサイズ: 12px; 高さ: 30px; 行の高さ: 30px; テキスト配置: 中央; } </スタイル> </head> <本文> <div id="コンテンツラップ"> <div id="コンテンツ"> <div class="ビデオリストラップ"> <p class="video-title">ビデオリスト</p> <ul class="ビデオリスト"></ul> </div> </div> </div> </本文> <script type="text/javascript" src="./jquery.js"></script> <script type="text/javascript"> $(関数(){ var $content = $('#content'); // プレーヤーを初期化する var init = function(src){ var $video = $('<video id="video" コントロール>'); $video.attr('プリロード', '自動'); $video.attr('幅', 720).attr('高さ', 405); $video.attr('自動再生', '自動再生'); $video.append($('<source>').attr('src', src).attr('type', 'video/mp4')); $content.append($video); }; /* ビデオリストを取得 */ var $video_list = $('.video-list'); $video_list.css('高さ', 340); $.ajax({ url: "video.list", タイプ: "GET", 非同期: true、 成功: function(resp){ $.each(resp.split('\n'), function(idx, item){ if (item === '') 戻り値: var $p = $('<li>').addClass('ビデオアイテム'); $p.text(アイテム); $p.data('パス', 項目); $video_list.append($p); }); } }); 初期化(); /* ビデオを切り替える */ $video_list.on('click', '.video-item', function(){ $("#video").remove(); var $this = $(this); $this.parent().find('.active').removeClass('active'); クラスを追加します。 $this.data を初期化します('path')。 }); }) </スクリプト> </html> ビデオリスト # このディレクトリ内のすべての MP4 ファイル (jQuery が解析するため) root@tianshl:/data/video# ls *.mp4 > video.list nginx の設定 ユーザー root; ワーカープロセス 1; イベント { ワーカー接続 1024; } http { mime.types を含めます。 ファイル送信オン; キープアライブタイムアウト65; サーバー{ 8000を聴く; server_name ローカル IP; 位置 / { # 最初の2行は認証用です(オプション) auth_basic "シークレット"; auth_basic_user_file /usr/local/nginx/passwd.db; # パス ルート /data/video; # ホームページインデックス index.html; } } } インターフェース表示 http://ローカルホスト:8000 認証 プレーヤー 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 |
<<: MySQL で数千万のテストデータを含むテストデータベースを作成する方法
>>: Vue3 の emitting と attr の違いの分析
MySQL のロックロックは、並行環境におけるリソースの競合を解決する手段です。その中でも、楽観的並...
目次一致と不一致一致するすべてが平等ではない平等と不平等等しい等しくない一致と不一致シンボルの両側の...
目次1. 遭遇した問題2. 問題を分析する3. 本当の問題4. 解決策5. ソリューション効果1. ...
初めてこのエッセイを使ったとき、私はかなりぎこちなく感じましたhtmlファイルコードをコピーコードは...
1. カスタムフックとは何かロジックの再利用簡単に言えば、カスタム フックを使用すると、特定のコンポ...
目次1. ダウンロード2. nginxとnginx-vts-exporterをインストールする3. ...
記事「MySQL の最適化: キャッシュの最適化」では、システムによってコンパイルされた変数値、また...
目次序文原因現象なぜ?分析要約する序文今日は、非常に典型的な MySQL の「落とし穴」についてお話...
Web プロジェクトを war にパッケージ化するアイデアにとって最も重要なことは、アトリフィカを...
最近、C# を使用して Web プログラムを作成していたときに、次のような問題が発生しました。 Te...
目次序文ストアドプロシージャ: 1. ストアドプロシージャの作成と呼び出し1. ストアドプロシージャ...
最近、WeChatアプレットを書いていたとき、WeChatアプレットではすべてのリクエストインターフ...
目次1. まず、pycharmを使用してDjangoプロジェクトを作成し、関連する環境を設定します。...
最近、次のような効果を達成する必要がある最初は、CSS3D回転を使用して記述すると、次の効果しか得ら...
Linux ホスト名変更コマンド1. ホスト名を一時的に変更するだけの場合は、hostname コマ...