JS プリロード ビデオ オーディオ/ビデオ キャプチャ スクリーンショットのヒントの共有
この記事では、スクリーンショットを取得するためのビデオオーディオ/ビデオのプリロード(キャンバスのスクリーンショットを返す)のJS実装に関する関連情報を主に紹介します。必要な友人が参考になれば幸いです。
#load-media.js
/** * Create by Capricorncd 2017 */ // 同域资源实现视频截图,可上传的图片数据格式 // 非同域资源实现canvas截图预览 // 提示码 const CODES = { 0: 'success', 1: 'The url is not valid', 2: 'onerror' } /** * constructor * @param opts.url 音频|视频URL * @param opts.type 'audio|video' * @param opts.callback 回调函数 */ function loadMedia(opts) { this.callback = opts.callback || function (res) { console.log(res); } // 初始化 this.init(opts); } // prototype loadMedia.prototype = { /** * 初始化media * @param url */ init: function (opts) { let self = this; if (!opts.url || typeof opts.url !== 'string') { this.callback({code: 1, msg: CODES[1]}); return; } // 创建media let mediaType = opts.type === 'audio' ? 'audio' : 'video'; this.media = document.createElement(mediaType); console.log('this.media', this.media); // loaded this.listener('canplaythrough', function (e) { // 截图 if (mediaType === 'video') { self.screenshot(); } else { self.callback({ code: 0, msg: CODES[0], thumb: null, media: this.media, canvas: null }); } }); // error this.listener('error', function (e) { self.callback({code: 2, msg: CODES[2], data: e}); }) this.media.setAttribute('src', opts.url); }, screenshot: function () { // create canvas let canvas = document.createElement('canvas'); canvas.width = this.media.videoWidth; canvas.height = this.media.videoHeight; let ctx = canvas.getContext('2d'); // 截取 ctx.drawImage(this.media, 0, 0); let thumb = null; // 非跨域资源 // !!非同域资源无法获取数据 try { let type = 'image/png'; let data = canvas.toDataURL(type); thumb = this.toBlobData(data, type); } catch (e) {} this.callback({ code: 0, msg: CODES[0], thumb: thumb, media: this.media, canvas: canvas }) }, // 数据转换 toBlobData: function (data, type) { // 获取base64数据 // base64数据格式: // "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAkGB+wgHBgkIBwgKCgkLDRYPDQw//9k=" data = window.atob(data.split(',')[1]); let ia = new Uint8Array(data.length); for (let i = 0; i < data.length; i++) { ia[i] = data.charCodeAt(i); }; // canvas.toDataURL 返回的默认格式是 image/png return new Blob([ia], {type: type}); }, /** * addEventListener 事件监听 * @param en EventName * @param callback */ listener: function (en, callback) { this.media.addEventListener(en, function (e) { if (callback) { callback(e); } else { console.warn(this); } }, false); } /** * 资源是否跨域 * @param url 资源地址 * @returns {boolean} */ // isCrossDomain: function (url) { // let loc, host, protocol; // loc = window.location; // host = loc.host; // protocol = loc.protocol; // // 是否为http链接 // if (/(http|https):\/\//.test(url)) { // if (url.indexOf(protocol + '//' + host) >= 0) { // return false; // } else { // return true; // } // } // // './xxx.mp4' '/xxx.mp4' 'xxx.mp4' // return false; // } }
デフォルトのloadMedia;
// 参考资料 // HTML5的Video标签的属性,方法和事件汇总 // http://www.cnblogs.com/TF12138/p/4448108.html # 使用 import loadMedia from '@/common/js/load-media' let loadVideo = new loadMedia({ type: 'video', url: 'http://xmqvip1-1253933147.file.myqcloud.com/chat/video/60/2017/09/29/qgj1c8K7oaYn-SCVideo-Merged.mp4', callback: handleCallback }) function handleCallback (res) { console.log(res) // canplaythrough if (res.code === 0) { } // error if (res.code === 2) { } }
関連する推奨事項:
javascript - phantomjsを使用して取得する方法スクリーンショットを撮って保存してください
以上がJS プリロード ビデオ オーディオ/ビデオ キャプチャ スクリーンショットのヒントの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











1. win キー + r キーを押し、「regedit」と入力して、「OK」をクリックします。 2. 開いたレジストリ エディタ ウィンドウで、HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlGraphicsDriversDCI を展開し、右側の [タイムアウト] を選択してダブルクリックします。 3. 次に、[数値データ]の 7 を 0 に変更し、確認して終了します。

最近、多くの消費者が携帯電話の買い替えを検討しており、Redmi13C は非常にコスト効率の高い選択肢です。この携帯電話のパフォーマンス構成は優れています。毎日の使用を容易にするために、Redmi 13C でスクリーンショットを撮る方法を簡単に紹介します。一緒に調べてみましょう! Redmi 13c でスクリーンショットを撮る方法 1. スクリーンショットを撮るためのショートカット キー: Redmi Phone の電源ボタンと音量ダウン キーを同時に押して、スクリーンショットを撮ります。 2. ジェスチャースクリーンショット:Redmiフォンの設定を入力し、「その他の設定」を見つけて「ジェスチャーとキーのショートカット」を見つけてクリックし、「3本指のプルダウン」操作を有効にしてスクリーンショットを撮るように設定します。このようにして、スクリーンショットを撮る必要がある場合、3 本の指で画面を下にスライドするだけでスクリーンショットを撮ることができます。 3. 電話画面から通知バーのスクリーンショットを撮ります。

iPhone ではスクリーンショット機能が動作しませんか?スクリーンショットの撮影は非常に簡単で、音量を上げるボタンと電源ボタンを同時に押して携帯電話の画面を取得するだけです。ただし、デバイスでフレームをキャプチャする方法は他にもあります。解決策 1 – Assistive Touch の使用 Assistive Touch 機能を使用してスクリーンショットを撮ります。ステップ 1 – 電話の設定に移動します。ステップ 2 – 次に、タップしてアクセシビリティ設定を開きます。ステップ 3 – タッチ設定を開きます。ステップ 4 – 次に、Assistive Touch 設定を開きます。ステップ 5 – 携帯電話の Assistive Touch をオンにします。ステップ 6 – 「トップメニューのカスタマイズ」を開いてアクセスします。ステップ 7 – ここで必要なのは、これらの機能のいずれかを画面キャプチャにリンクすることだけです。それで最初をクリックしてください

スクリーンショットは、画面上の内容を簡単にキャプチャして共有できるため、コンピュータでは非常に一般的な機能です。コンピューターでスクリーンショットを撮る方法はたくさんあります。ここで、Lenovo ThinkPad X13 ノートブックでよく使用されるスクリーンショットの方法を紹介しましょう。 Lenovo ThinkPad X13 スクリーンショット方法の紹介 コンピューターでのスクリーンショット方法に関しては、さまざまなオプションがあります。ここでは、ThinkPad X13 のショートカット キーを使用してスクリーンショットを撮る方法と、主流のソフトウェアでスクリーンショットを撮る方法を中心に説明します。 ThinkPadX13 には、簡単なショートカット キーのスクリーンショット機能が用意されています。 Fn キーと PrtSc キーを押すだけで、現在の画面内容のスクリーンショットをクリップボードに保存できます。その後、ペイントなどの画像編集ソフトウェアを開くことができます

Mac のスクリーンショットを WeChat に送信するにはどうすればよいですか? まず、デスクトップでランチパッドを見つけて開き、WeChat を見つけて、WeChat をクリックしてログインし、最後にポップアップ環境設定のショートカット キー設定ウィンドウに入ります。 Mac のスクリーンショットを WeChat に送信する方法 1. デスクトップでランチパッドを見つけます。 2. 次に、WeChat を見つけます。 3. クリックして WeChat にログインします。 4. ログイン後、コンピューター ページの左上隅にある WeChat オプションを見つけて開きます。 5. ポップアップ メニューの環境設定オプションに移動してショートカット設定ウィンドウに入り、最後にショートカット キー設定ページでスクリーンショット機能を見つけてキーを設定します。

Win8 でショートカット キーを使用してスクリーンショットを撮るにはどうすればよいですか?コンピューターを日常的に使用する中で、画面上のコンテンツのスクリーンショットを撮る必要があることがよくあります。 Windows 8 システムのユーザーにとって、ショートカット キーを使用してスクリーンショットを撮ることは便利で効率的な操作方法です。この記事では、Windows 8 システムでスクリーンショットをより速く撮るためによく使用されるショートカット キーをいくつか紹介します。 1 つ目の方法は、「Win キー + PrintScreen キー」キーの組み合わせを使用して完全な操作を実行することです。

Honor Magic5Pro には MagicOS7.1 オペレーティング システムが搭載されており、非常にスムーズに動作します。では、Magic5Pro でスクリーンショットを撮るにはどうすればよいでしょうか?この記事では、詳細なワンクリック スクリーンショット チュートリアルを提供します. Honor Magic5Pro スクリーンショット チュートリアル. Honor Magic5Pro は、標準スクリーンショット、部分スクリーンショット、および長いスクリーンショットをサポートしています。スクリーンショットを撮る方法は次のとおりです。 携帯電話の画面の上端を下にスワイプして、コントロール センターを開きます。コントロール センターでスクリーンショット アイコンを見つけてクリックすると、スクリーンショットをすぐに撮ることができます。また、[音量 -] と [電源ボタン] を同時に押してスクリーンショットを撮ることもできます。部分的または長いスクリーンショットを撮る必要がある場合は、スクリーンショットの右下隅にある逆三角形をクリックする必要があります。スクリーンショットのアイコン。クリックすると【事務局】と表示されます。

先日、アクションアドベンチャーゲーム『Starblade』にて、ヒロインのイブ、リリー、アダムが登場する新たなメインビューが公開されました。 『スターブレイド』の物語は、戦士イブが突如現れた人類の宿敵ネティバを倒すため地球に来るよう命じられ、異星人の植民地から到着するところから始まる。ネティバは、アルファとエルダーからなる上位種族の命令で人間を攻撃しているようです。荒廃した世界で、主人公のイブは地球に残った生存者のアダムと元ソアチームのリリーに出会う。彼らはネティバと並んで戦った。このゲームはPS5向けに4月26日に発売されます。後日PC版もリリースされる予定です。
