シンプルな HTML ビデオ プレーヤーを実装する方法

シンプルな HTML ビデオ プレーヤーを実装する方法

この記事では、シンプルな 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 ロック関連知識のまとめ

MySQL のロックロックは、並行環境におけるリソースの競合を解決する手段です。その中でも、楽観的並...

JSにおける合同と不等式、等式と不等式の問題について

目次一致と不一致一致するすべてが平等ではない平等と不平等等しい等しくない一致と不一致シンボルの両側の...

MySQLデータベースに中国語の文字を保存するときに発生するエラーを解決する方法を教えます

目次1. 遭遇した問題2. 問題を分析する3. 本当の問題4. 解決策5. ソリューション効果1. ...

HTMLページ間で値を渡す問題の解決策

初めてこのエッセイを使ったとき、私はかなりぎこちなく感じましたhtmlファイルコードをコピーコードは...

Reactでカスタムフックを作成する方法を教えます

1. カスタムフックとは何かロジックの再利用簡単に言えば、カスタム フックを使用すると、特定のコンポ...

Prometheus+Grafanaによるnginxの監視方法を分析する

目次1. ダウンロード2. nginxとnginx-vts-exporterをインストールする3. ...

MySQL 最適化接続最適化

記事「MySQL の最適化: キャッシュの最適化」では、システムによってコンパイルされた変数値、また...

MySQLはこのような更新文を決して書きません

目次序文原因現象なぜ?分析要約する序文今日は、非常に典型的な MySQL の「落とし穴」についてお話...

アイデアを war パッケージにパッケージ化し、tomcat にデプロイしてアクセス パスの問題 (図とテキスト)

Web プロジェクトを war にパッケージ化するアイデアにとって最も重要なことは、アトリフィカを...

CSSを使用してTDのINPUTの幅を設定する

最近、C# を使用して Web プログラムを作成していたときに、次のような問題が発生しました。 Te...

MySQL ストアド プロシージャの作成と呼び出しの詳細な説明

目次序文ストアドプロシージャ: 1. ストアドプロシージャの作成と呼び出し1. ストアドプロシージャ...

Tencent Cloud で HTTPS を無料で導入する方法

最近、WeChatアプレットを書いていたとき、WeChatアプレットではすべてのリクエストインターフ...

画像をMySQLデータベースに保存し、フロントエンドページに表示するための実装コード

目次1. まず、pycharmを使用してDjangoプロジェクトを作成し、関連する環境を設定します。...

CSS3 を使用して楕円軌道の回転を実装するサンプルコード

最近、次のような効果を達成する必要がある最初は、CSS3D回転を使用して記述すると、次の効果しか得ら...

Linuxホスト名変更コマンドの詳しい説明

Linux ホスト名変更コマンド1. ホスト名を一時的に変更するだけの場合は、hostname コマ...