当前位置: 首页 > wzjs >正文

xampp wordpress 建站教程如何制作自己的微信小程序

xampp wordpress 建站教程,如何制作自己的微信小程序,为什么网站百度搜不到了,女人网站源码前言: 目前随着手机分辨率越来越高,几十秒的视频动不动就几百兆,为了减少传输大小,就需要对原有视频进行压缩,那么在鸿蒙中,如果不引入三方组件如何实现视频压缩呢。下面将介绍一种方法,使用鸿…

前言:

目前随着手机分辨率越来越高,几十秒的视频动不动就几百兆,为了减少传输大小,就需要对原有视频进行压缩,那么在鸿蒙中,如果不引入三方组件如何实现视频压缩呢。下面将介绍一种方法,使用鸿蒙的媒体库实现视频压缩

一、使用AVTranscoder实现视频压缩

主要步骤如下:

(1)设置压缩参数,比如设置比特率,通过设置比特率可以控制压缩后的视频大小,比如一个100M的视频,时长为30s,如果想要压缩到10M以内,则设置比特率为 10 * 8 * 1024 * 1024 / 30 约等于2500000,为了去除音频大小的影响,我们可以再乘以0.8,差不多为2000000

(2)设置压缩过程的回调函数,监听视频压缩是否成功

(3)设置待压缩的视频句柄,设置输出视频的路径句柄

二、下面展示从相册中选中视频,并压缩到10M以内的完整示例:

1、从相册中选择视频代码:

import { photoAccessHelper } from "@kit.MediaLibraryKit";export class FileUtil {static async selectVideo() {const photoViewPicker = new photoAccessHelper.PhotoViewPicker()const photoSelectOptions = new photoAccessHelper.PhotoSelectOptions()photoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.VIDEO_TYPEphotoSelectOptions.maxSelectNumber = 1let result = await photoViewPicker.select(photoSelectOptions)let uris = result.photoUris || []if (uris.length) {return uris[0]}return ""}
}

2、使用AVTranscoder压缩视频,并将压缩后的视频存入应用沙箱

import { media } from '@kit.MediaKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { common } from '@kit.AbilityKit';
import { FileUtil } from './FileUtil';
import {fileIo as fs} from '@kit.CoreFileKit'export class AVTranscoderDemo {private avTranscoder: media.AVTranscoder | undefined = undefined;private avConfig: media.AVTranscoderConfig = {audioCodec: media.CodecMimeType.AUDIO_AAC, // 音频编码格式。fileFormat: media.ContainerFormatType.CFT_MPEG_4, // 封装格式。videoBitrate: 2000000, // 视频比特率。videoCodec: media.CodecMimeType.VIDEO_AVC, // 视频编码格式。};// 注册avTranscoder回调函数。setAVTranscoderCallback() {if (canIUse("SystemCapability.Multimedia.Media.AVTranscoder")) {if (this.avTranscoder != undefined) {// 转码完成回调函数。this.avTranscoder.on('complete', async () => {console.log(`AVTranscoder is completed`);await this.releaseTranscoderingProcess();});// 错误上报回调函数。this.avTranscoder.on('error', (err: BusinessError) => {console.error(`AVTranscoder failed, code is ${err.code}, message is ${err.message}`);});}}}// 开始转码对应的流程。async startTranscoderingProcess() {if (canIUse("SystemCapability.Multimedia.Media.AVTranscoder")) {if (this.avTranscoder != undefined) {await this.avTranscoder.release();this.avTranscoder = undefined;}// 1.创建转码实例。this.avTranscoder = await media.createAVTranscoder();this.setAVTranscoderCallback();// 2.从相册选取视频let viedoInput = await FileUtil.selectVideo();let fileDescriptor = await fs.open(viedoInput, fs.OpenMode.READ_ONLY)this.avTranscoder.fdSrc = fileDescriptor;// 3、指定压缩后的视频路径let context = getContext(this) as common.UIAbilityContextlet targetPath = context?.filesDir + '/' + new Date().getTime()+'test.mp4'let targetFile = await fs.open(targetPath,fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE)this.avTranscoder.fdDst = targetFile.fd;// 3.配置转码参数完成准备工作。await this.avTranscoder.prepare(this.avConfig);// 4.开始转码。await this.avTranscoder.start();}}// 暂停转码对应的流程。async pauseTranscoderingProcess() {if (canIUse("SystemCapability.Multimedia.Media.AVTranscoder")) {if (this.avTranscoder != undefined) { // 仅在调用start返回后调用pause为合理调用。await this.avTranscoder.pause();}}}// 恢复对应的转码流程。async resumeTranscoderingProcess() {if (canIUse("SystemCapability.Multimedia.Media.AVTranscoder")) {if (this.avTranscoder != undefined) { // 仅在调用pause返回后调用resume为合理调用。await this.avTranscoder.resume();}}}// 释放转码流程。async releaseTranscoderingProcess() {if (canIUse("SystemCapability.Multimedia.Media.AVTranscoder")) {if (this.avTranscoder != undefined) {// 1.释放转码实例。await this.avTranscoder.release();this.avTranscoder = undefined;// 2.关闭转码目标文件fd。}}}// 一个完整的【开始转码-暂停转码-恢复转码-转码完成】示例。async avTranscoderDemo() {await this.startTranscoderingProcess(); // 开始转码。await this.pauseTranscoderingProcess(); //暂停转码。await this.resumeTranscoderingProcess(); // 恢复转码。await this.releaseTranscoderingProcess(); // 释放转码。}
}


文章转载自:

http://qrKeuqmF.dbtdy.cn
http://WAQeMllr.dbtdy.cn
http://Q1jSrL2n.dbtdy.cn
http://fj1xk5NE.dbtdy.cn
http://uG7aZ8mL.dbtdy.cn
http://w6BIwYbV.dbtdy.cn
http://yovZGnvh.dbtdy.cn
http://QDGnEPmW.dbtdy.cn
http://iGM4TwjJ.dbtdy.cn
http://AN7Y2bEi.dbtdy.cn
http://6hZiBkpd.dbtdy.cn
http://7V3haVPH.dbtdy.cn
http://rmJLEHZZ.dbtdy.cn
http://wkgf7OIk.dbtdy.cn
http://oG3cXcGz.dbtdy.cn
http://JYIbjxXc.dbtdy.cn
http://BhQ2lBGU.dbtdy.cn
http://K8OTnAx1.dbtdy.cn
http://xN43DO6H.dbtdy.cn
http://Z6lmyYJB.dbtdy.cn
http://cqpBQP45.dbtdy.cn
http://MoZlsmFZ.dbtdy.cn
http://BwahQMCJ.dbtdy.cn
http://uV8Z2Kbz.dbtdy.cn
http://CAxRdHi9.dbtdy.cn
http://6S3uxoI1.dbtdy.cn
http://0ToWgpWn.dbtdy.cn
http://NNayWFcY.dbtdy.cn
http://NwMstpNQ.dbtdy.cn
http://xuwAONau.dbtdy.cn
http://www.dtcms.com/wzjs/636619.html

相关文章:

  • 网站建设服务 百度国外 设计公司手机网站
  • 网站的建设及推广互联网金融网站开发
  • 做网站图片用什么格式最好wordpress 不显示账号名
  • 电子商务网站建设与维护期末答案国内永久免费的crm
  • 网站开发常用语言灵川网站制作
  • 曲沃网站建设做搜狗pc网站优化
  • php网站搬家教程重庆建一个网站
  • 网站设计与网页制作心得体会阜阳网站建设电话
  • 中国建设协会网站万网买好域名后如何开通网站
  • 开淘宝的店铺网站怎么做wordpress如何设计主页
  • 发帖秒收录的网站wordpress 导入word
  • 合肥做的比较好的网站有那几家广东省农业农村厅官网首页
  • 北京做网站推广小米的网络营销方式
  • 官方查企业信息的网站注册查询官方网站
  • 做自媒体网站需要注册什么公司数码科技网站
  • 景区网站建设外包公司一个人头挣多少钱
  • wordpress卡密网站源码跨境电商最好的平台
  • 网站建设一般需要多少钱一个网站可以优化多少关键词
  • 江苏省建设厅网站是网页qq邮箱登录入口
  • 金融企业网站源码重庆排名前十的互联网公司
  • 淘宝客网站的模板学院网站建设需求分析
  • 新乡商城网站建设哪家专业制作做动画的网站
  • 长沙哪个网站建设最好珠宝网站模版
  • 网站推广seo方法网站建设开发教程视频
  • 网站软文代写网站建设费摊销
  • 建立一个网站的步骤汕头百姓网二手房出售
  • 网站建设与管理实验目的道可道在线设计平台
  • 汽车用品网站网站建设引领者
  • 全球访问量最大的10个网站地产网站互动营销
  • 亿客搜网站建设英文商务网站制作