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; // } }
export default 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











1. win 키 + r 키를 누르고 regedit를 입력한 후 확인을 클릭합니다. 2. 열린 레지스트리 편집기 창에서 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlGraphicsDriversDCI를 확장하고 오른쪽에서 Timeout을 선택한 후 두 번 클릭합니다. 3. 그런 다음 [숫자 데이터]의 7을 0으로 변경하고 종료를 확인합니다.

스크린샷은 화면에 있는 내용을 쉽게 캡처하고 공유할 수 있도록 해주는 컴퓨터에서 매우 일반적인 기능입니다. 컴퓨터에서 스크린샷을 찍는 방법에는 여러 가지가 있습니다. 이제 Lenovo ThinkPad X13 노트북에서 일반적으로 사용되는 스크린샷 방법을 소개하겠습니다. Lenovo ThinkPad X13 스크린샷 방법 소개 컴퓨터의 스크린샷 방법과 관련하여 다양한 옵션이 있습니다. 여기서는 ThinkPad X13의 단축키로 스크린샷을 찍는 방법과 주류 소프트웨어로 스크린샷을 찍는 방법을 중점적으로 살펴보겠습니다. ThinkPadX13은 간단한 단축키 스크린샷 기능을 제공합니다. 현재 화면 내용의 스크린샷을 클립보드에 저장하려면 Fn 키와 PrtSc 키만 누르면 됩니다. 그런 다음 그림판과 같은 사진 편집 소프트웨어를 열 수 있습니다.

최근 많은 소비자들이 휴대폰 교체를 고려하고 있는데, Redmi13C는 매우 비용 효율적인 선택입니다. 이 폰의 성능과 구성은 훌륭합니다. 일상생활에서 활용하기 쉽도록 Redmi 13C에서 스크린샷을 찍는 방법을 간략하게 소개해드리겠습니다! Redmi 13c에서 스크린샷을 찍는 방법 1. 스크린샷을 찍는 단축키: Redmi 휴대폰의 전원 버튼과 볼륨 낮추기 키를 동시에 눌러 스크린샷을 찍습니다. 2. 제스처 스크린샷: Redmi 휴대폰의 설정을 입력하고 "추가 설정"을 찾아 "제스처 및 단축키"를 찾아 클릭한 다음 "세 손가락 풀다운" 작업을 활성화하고 스크린샷을 찍도록 설정합니다. 이렇게 하면 스크린샷을 찍어야 할 때 세 손가락으로 화면을 아래로 밀어서 스크린샷을 찍기만 하면 됩니다. 3. 알림 표시줄의 스크린샷을 찍습니다: 휴대폰 화면에서

iPhone에서 스크린샷 기능이 작동하지 않나요? 스크린샷을 찍는 것은 매우 쉽습니다. 볼륨 높이기 버튼과 전원 버튼을 동시에 누르고 휴대폰 화면을 잡기만 하면 됩니다. 그러나 장치에서 프레임을 캡처하는 다른 방법이 있습니다. 수정 1 – 보조 터치 사용 보조 터치 기능을 사용하여 스크린샷을 찍습니다. 1단계 – 휴대폰 설정으로 이동합니다. 2단계 – 다음으로 탭하여 접근성 설정을 엽니다. 3단계 – 터치 설정을 엽니다. 4단계 – 다음으로 보조 터치 설정을 엽니다. 5단계 – 휴대폰에서 Assistive Touch를 켜세요. 6단계 – “상위 메뉴 사용자화”를 열어서 접근하세요. 7단계 – 이제 이러한 기능 중 하나를 화면 캡처에 연결하기만 하면 됩니다. 그러니 첫 번째를 클릭하세요.

Mac 스크린샷을 WeChat으로 보내는 방법 먼저 데스크탑에서 런치패드를 찾아 열고 WeChat을 찾은 다음 WeChat을 클릭하여 로그인하고 마지막으로 팝업 환경설정에서 단축키 설정 창에 들어갑니다. Mac 스크린샷을 WeChat으로 보내는 방법 1. 데스크탑에서 런치패드를 찾으세요. 2. 그런 다음 위챗을 찾으세요. 3. 위챗에 로그인하려면 클릭하세요. 4. 로그인 후 컴퓨터 페이지 왼쪽 상단에서 WeChat 옵션을 찾아 엽니다. 5. 그런 다음 팝업 메뉴의 기본 설정 옵션으로 이동하여 단축키 설정 창으로 이동합니다. 마지막으로 단축키 설정 페이지에서 스크린샷 기능을 찾아 키를 설정합니다.

Win8에서 바로가기 키를 사용하여 스크린샷을 찍는 방법은 무엇입니까? 일상적으로 컴퓨터를 사용하다 보면 화면에 표시되는 콘텐츠의 스크린샷을 찍어야 하는 경우가 많습니다. Windows 8 시스템 사용자의 경우 단축키를 통해 스크린샷을 찍는 것이 편리하고 효율적인 작업 방법입니다. 이 기사에서는 Windows 8 시스템에서 스크린샷을 찍는 데 일반적으로 사용되는 몇 가지 바로 가기 키를 소개하여 보다 빠르게 스크린샷을 찍는 데 도움을 줍니다. 첫 번째 방법은 "Win 키 + PrintScreen 키" 키 조합을 사용하여 전체 작업을 수행하는 것입니다.

Honor Magic5Pro에는 MagicOS7.1 운영 체제가 탑재되어 있어 매우 원활하게 작동합니다. 그렇다면 Magic5Pro에서 스크린샷을 찍는 방법은 무엇일까요? 이 기사에서는 자세한 원클릭 스크린샷 튜토리얼을 제공합니다. Honor Magic5Pro는 표준 스크린샷, 부분 스크린샷 및 긴 스크린샷을 지원합니다. 스크린샷을 찍는 방법은 다음과 같습니다. 휴대폰 화면 상단 가장자리를 아래로 스와이프하여 제어 센터를 엽니다. 제어 센터에서 스크린샷 아이콘을 찾아 클릭하면 빠르게 스크린샷을 찍을 수 있습니다. 또한, [볼륨 -]과 [전원 버튼]을 동시에 눌러 스크린샷을 찍을 수도 있습니다. 부분 또는 긴 스크린샷을 찍으려면 화면 오른쪽 하단에 있는 역삼각형을 클릭하세요. 스크린샷 아이콘입니다. 클릭하시면 [국세청]이 표시됩니다.

최근 액션 어드벤처 게임 '스타블레이드'가 히로인 이브, 릴리, 아담이 등장하는 새로운 메인뷰를 공개했다. 『스타 블레이드』의 이야기는 외계 식민지에서 온 전사 이브가 갑자기 나타난 인류의 옛 적 네티바를 물리치기 위해 지구로 오라는 명령을 받는 순간부터 시작된다. 네티바는 알파와 엘더로 구성된 우월한 종족의 명령에 따라 인간을 공격하는 것으로 보입니다. 황폐해진 세상에서 주인공 이브는 지구에 남은 생존자 아담과 소어팀의 전 멤버였던 릴리를 만난다. 그들은 Netiba를 상대로 나란히 싸웠습니다. 이 게임은 PS5용으로 4월 26일 출시될 예정이다. 추후 PC로도 출시될 예정이다.
