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

网络营销具有什么特点seo发帖网站

网络营销具有什么特点,seo发帖网站,可以访问的国外网站,wordpress step2 500选择本地视频文件,并获取首帧预览图 参考文档 由于文件权限获取不太方便,现在使用的是 picker 的方式获取本地视频文件。文件位于我的手机/下载目录下。 操作分为几步: 获取文件地址;获取视频信息;首帧截图&#x…

选择本地视频文件,并获取首帧预览图

参考文档

由于文件权限获取不太方便,现在使用的是 picker 的方式获取本地视频文件。文件位于我的手机/下载目录下。

操作分为几步:

  1. 获取文件地址;
  2. 获取视频信息;
  3. 首帧截图;
  4. 显示截图;

获取文件地址

try {let context = CCAppContext.context.getHostContext()!let documentSelectOptions = new picker.DocumentSelectOptions();documentSelectOptions.fileSuffixFilters = ['视频|.mp4', '视频|.avi']let documentPicker = new picker.DocumentViewPicker(context);documentPicker.select(documentSelectOptions).then((documentSelectResult: Array<string>) => {console.info('DocumentViewPicker.select successfully, documentSelectResult uri: ' + JSON.stringify(documentSelectResult));if (documentSelectResult.length > 0) {let uri = documentSelectResult[0] // 这个是获取到的文件地址}).catch((err: BusinessError) => {console.error(`DocumentViewPicker.select failed with err, code is: ${err.code}, message is: ${err.message}`);});
} catch (error) {let err: BusinessError = error as BusinessError;console.error(`DocumentViewPicker failed with err, code is: ${err.code}, message is: ${err.message}`);
}

获取视频信息 & 获取首帧截图 & 显示图片

try {// 打开视频文件获取文件描述符let fd = await fileIo.open(videoPath, fileIo.OpenMode.READ_ONLY)const extractor = await media.createAVMetadataExtractor()extractor.fdSrc = { fd: fd.fd }let metaData = await extractor.fetchMetadata()this.imageWidth = parseInt(metaData.videoWidth || '1') // 视频宽度this.imageHeight = parseInt(metaData.videoHeight || '1') // 视频高度let orientation = metaData.videoOrientation // 视频旋转,截图有可能有旋转角度const avImageGenerator = await media.createAVImageGenerator()avImageGenerator.fdSrc = { fd: fd.fd }// 配置缩略图参数const param: media.PixelMapParams = {width: this.imageWidth,height: this.imageHeight,}this.pixelMap = await avImageGenerator.fetchFrameByTime(0, // 0表示首帧(单位微秒)media.AVImageQueryOptions.AV_IMAGE_QUERY_NEXT_SYNC,param)await avImageGenerator.release() // 释放资源fileIo.close(fd) // 关闭文件
} catch (error) {console.error(`Get thumbnail failed: ${error.code}, ${error.message}`)
}

完整代码

import { fileIo, fileUri, picker } from '@kit.CoreFileKit';
import { BusinessError } from '@ohos.base'
import { media } from '@kit.MediaKit';@Entry
struct test {@State pixelMap: PixelMap | undefined = undefined@State imageWidth: number = 1@State imageHeight: number = 1@State orientation: number = 0chooseFile() {try {let context = getContext()let documentSelectOptions = new picker.DocumentSelectOptions();documentSelectOptions.fileSuffixFilters = ['视频|.mp4', '视频|.avi']let documentPicker = new picker.DocumentViewPicker(context);documentPicker.select(documentSelectOptions).then((documentSelectResult: Array<string>) => {console.info('DocumentViewPicker.select successfully, documentSelectResult uri: ' + JSON.stringify(documentSelectResult));if (documentSelectResult.length > 0) {let uri = documentSelectResult[0]this.getFirstFrame(uri)}}).catch((err: BusinessError) => {console.error(`DocumentViewPicker.select failed with err, code is: ${err.code}, message is: ${err.message}`);});} catch (error) {let err: BusinessError = error as BusinessError;console.error(`DocumentViewPicker failed with err, code is: ${err.code}, message is: ${err.message}`);}}async getFirstFrame(videoPath: string) {try {// 打开视频文件获取文件描述符let fd = await fileIo.open(videoPath, fileIo.OpenMode.READ_ONLY);const extractor = await media.createAVMetadataExtractor()extractor.fdSrc = { fd: fd.fd };let metaData = await extractor.fetchMetadata()this.imageWidth = parseInt(metaData.videoWidth || '1')this.imageHeight = parseInt(metaData.videoHeight || '1')this.orientation = parseInt(metaData.videoOrientation || '0')const avImageGenerator = await media.createAVImageGenerator();avImageGenerator.fdSrc = { fd: fd.fd };// 配置缩略图参数const param: media.PixelMapParams = {width: this.imageWidth,height: this.imageHeight};this.pixelMap = await avImageGenerator.fetchFrameByTime(0, // 0表示首帧(单位微秒)media.AVImageQueryOptions.AV_IMAGE_QUERY_NEXT_SYNC,param);await avImageGenerator.release(); // 释放资源fileIo.close(fd); // 关闭文件} catch (error) {console.error(`Get thumbnail failed: ${error.code}, ${error.message}`);}}build() {Column() {Text('截图').fontSize('22fp').fontColor(Color.Black).onClick(() => {this.chooseFile()})Image(this.pixelMap).objectFit(ImageFit.Cover).width('30%').aspectRatio(1).orientation(this.orientation)}.justifyContent(FlexAlign.Center).alignItems(HorizontalAlign.Center).width('100%').height('100%')}
}
http://www.dtcms.com/wzjs/803961.html

相关文章:

  • 做职业规划的网站深圳营销网站建设服务
  • wordpress建娱乐站html简单网站开发案例
  • 铁岭 开原网站建设中企动力z云邮登录
  • 网站建设确认书大型网站技术架构演进与性能优化
  • 做网站的镜像是什么意思企业年金退休后如何领取
  • 展厅设计制作网站网站建设属于什么行业分类
  • 个人怎么建立网站经营网站 备案信息管理系统
  • 威海做网站的公司哪家好惠州seo外包v1
  • 太原seo整站优化手机网站建设要多少钱
  • 企业网站模板科技感莱芜网络推广公司排行
  • 网站推广应注意哪些事项表白网页链接在线制作
  • 网站改版分析百度seo排名软件
  • 网站前台需求文档html音乐播放器代码
  • 什么是网站链接优化极速网站制作
  • 怎样说服老板做网站世界技能大赛网站建设
  • 嘉兴企业网站推广谷歌google官方下载
  • 做软装设计找图有什么好的网站wordpress手机登录注册
  • 可以免费做简历的网站做网站包含什么职位
  • 民宿网站建设问卷调查深圳网站开发培训
  • 网站的主色调受雇去建设网站类网站
  • 公交公司网站建设的意义如何做网络营销能成功呢
  • 犀牛云做的网站好不好上海闵行刚刚发生的
  • 手机网站和电脑网站一样吗图书馆网站建设教程
  • 网站设计定制公司响应式网站用什么语言
  • 济南外贸建站网页升级访问中新每天正常更新中在线观看
  • 网络游戏公司排行榜前十名南宁seo产品优化服务
  • 青海小学网站建设简要概括自建网站的优缺点
  • 广州网络公司建站系统软件开发
  • 深圳商城网站开发企业网站的基本特点是什么
  • 梅州市网站制作wordpress卡蜜销售