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

wordpress主题google朝阳seo排名

wordpress主题google,朝阳seo排名,前端开发课程,wordpress更换域名还是之前链接预览是在相机启动后实时显示场景画面,通常在拍照和录像前执行。 开发步骤 创建预览Surface 如果想在屏幕上显示预览画面,一般由XComponent组件为预览流提供Surface(通过XComponent的getXcomponentSurfaceId方法获取surfaceid)&…

预览是在相机启动后实时显示场景画面,通常在拍照和录像前执行。

开发步骤

创建预览Surface

如果想在屏幕上显示预览画面,一般由XComponent组件为预览流提供Surface(通过XComponent的getXcomponentSurfaceId方法获取surfaceid),而XComponent的能力由UI提供,相关介绍可参考XComponent组件。

// xxx.ets
// 创建XComponentController 
@Component
struct XComponentPage {// 创建XComponentControllermXComponentController: XComponentController = new XComponentController;surfaceId: string = '';build() {Flex() {// 创建XComponentXComponent({id: '',type: 'surface',libraryname: '',controller: this.mXComponentController}).onLoad(() => {// 设置Surface宽高(以1920*1080为例)this.mXComponentController.setXComponentSurfaceSize({surfaceWidth:1920,surfaceHeight:1080});// 获取Surface idthis.surfaceId = this.mXComponentController.getXComponentSurfaceId();}).width('1920px').height('1080px')}}
}

创建预览输出流

通过getSupportedOutputCapability方法获取到的CameraOutputCapability类中的previewProfiles属性表示当前设备支持的预览配置信息集合,设备能够支持多种不同的预览能力。通过createPreviewOutput方法创建预览输出流,其中,createPreviewOutput方法中的两个参数分别是previewProfilesArray数组中的某一项和上一步获取的surfaceId。

import { camera } from '@kit.CameraKit';
import { BusinessError } from '@kit.BasicServicesKit';function getPreviewOutput(cameraManager: camera.CameraManager, cameraOutputCapability: camera.CameraOutputCapability, surfaceId: string): camera.PreviewOutput | undefined {let previewProfilesArray: Array<camera.Profile> = cameraOutputCapability.previewProfiles;let previewOutput: camera.PreviewOutput | undefined = undefined;try {// 可根据用户需求选择不同的previewProfilepreviewOutput = cameraManager.createPreviewOutput(previewProfilesArray[0], surfaceId);} catch (error) {let err = error as BusinessError;console.error("Failed to create the PreviewOutput instance. error code: " + err.code);}return previewOutput;
}

启动预览

通过Session.start方法开始输出预览流。

async function startPreviewOutput(cameraManager: camera.CameraManager, previewOutput: camera.PreviewOutput): Promise<void> {let cameraArray: Array<camera.CameraDevice> = [];cameraArray = cameraManager.getSupportedCameras();if (cameraArray.length == 0) {console.error('no camera.');return;}// 获取支持的模式类型。let sceneModes: Array<camera.SceneMode> = cameraManager.getSupportedSceneModes(cameraArray[0]);let isSupportPhotoMode: boolean = sceneModes.indexOf(camera.SceneMode.NORMAL_PHOTO) >= 0;if (!isSupportPhotoMode) {console.error('photo mode not support');return;}let cameraInput: camera.CameraInput | undefined = undefined;cameraInput = cameraManager.createCameraInput(cameraArray[0]);if (cameraInput === undefined) {console.error('cameraInput is undefined');return;}// 打开相机。await cameraInput.open();let session: camera.PhotoSession = cameraManager.createSession(camera.SceneMode.NORMAL_PHOTO) as camera.PhotoSession;session.beginConfig();session.addInput(cameraInput);session.addOutput(previewOutput);await session.commitConfig();await session.start();
}

注:4.0版本需通过调用PreviewOutput.start方法开始输出预览流,从4.1版本开始废弃该方法,改用session.start启动会话同时输出预览流。

停止预览

通过Session.stop方法停止输出预览流。4.0版本需通过调用PreviewOutput.stop方法停止输出预览流,从4.1版本开始废弃该方法,改用session.stop停止会话同时停止输出预览流。

function stopCaptureSession(session: camera.Session): void {session.stop((err: BusinessError) => {if (err) {console.error(`Failed to stop the session, error code: ${err.code}.`);return;}console.info('Callback invoked to indicate the session stop success.');});

状态监听

在相机应用开发过程中,可以随时监听预览输出流的状态,包括预览流启动、预览流结束、预览流输出错误信息。

通过注册"frameStart"回调函数获取监听预览启动结果,previewOutput创建成功时即可监听,底层第一次开始曝光时触发该事件并返回,有该事件返回结果则认为预览流已启动。

function callback(err: BusinessError): void {if (err !== undefined && err.code !== 0) {console.error(`Callback Error, errorCode: ${err.code}`);return;}console.info('Preview frame started');
}function registerPreviewOutputFrameStart(previewOutput: camera.PreviewOutput): void {previewOutput.on('frameStart', callback);
}

通过注册的"frameEnd"回调函数获取监听预览结束结果,previewOutput创建成功时即可监听,预览完全结束最后一帧时触发该事件并返回,有该事件返回结果则认为预览流已结束。

function callback(err: BusinessError): void {if (err !== undefined && err.code !== 0) {console.error(`Callback Error, errorCode: ${err.code}`);return;}console.info('Preview frame ended');
}function registerPreviewOutputFrameEnd(previewOutput: camera.PreviewOutput): void {previewOutput.on('frameEnd', callback);
}

通过注册"error"回调函数获取监听预览输出的错误事件。

function onPreviewOutputError(previewOutput: camera.PreviewOutput): void {previewOutput.on('error', (previewOutputError: BusinessError) => {console.error(`Preview output error code: ${previewOutputError.code}`);});
}

预览流配置信息

支持查询预览流支持的帧率范围、预览旋转角度等信息;支持配置预览流帧率范围、预览旋转角度等。

function setFrameRateRange(previewOutput: camera.PreviewOutput): void {let supportedFrameRatesArray: Array<camera.FrameRateRange> = previewOutput.getSupportedFrameRates();previewOutput.setFrameRate(supportedFrameRatesArray[0].min, supportedFrameRatesArray[0].max);let activeFrameRate: camera.FrameRateRange = previewOutput.getActiveFrameRate();
}function setPreviewRotation(previewOutput: camera.PreviewOutput, previewRotation : camera.ImageRotation, isDisplayLocked: boolean): void {previewOutput.setPreviewRotation(previewRotation, isDisplayLocked);
}

API参考

createPreviewOutput

createPreviewOutput(profile: Profile, surfaceId: string): PreviewOutput

创建预览输出对象,同步返回结果。

createPreviewOutput(surfaceId: string): PreviewOutput

创建无配置信息的预览输出对象,同步返回结果。该接口需配合Session.preconfig方法一起使用。

PreviewOutput

预览输出类。继承CameraOutput。

on(type: 'frameStart', callback: AsyncCallback<void>): void
off(type: 'frameStart', callback?: AsyncCallback<void>): void
on(type: 'frameEnd', callback: AsyncCallback<void>): void
off('frameEnd')
on('error')
off(type: 'error', callback?: ErrorCallback): void// 查询支持的帧率范围
getSupportedFrameRates(): Array<FrameRateRange>// 设置预览流帧率范围,设置的范围必须在支持的帧率范围内。 进行设置前,可通过getSupportedFrameRates查询支持的帧率范围
setFrameRate(minFps: number, maxFps: number): void// 获取已设置的帧率范围,使用setFrameRate对预览流设置过帧率后可查询。
getActiveFrameRate(): FrameRateRange// 获取当前生效的配置信息
getActiveProfile(): Profile// 获取预览旋转角度
getPreviewRotation(displayRotation: number): ImageRotation// 设置预览旋转角度
setPreviewRotation(previewRotation: ImageRotation, isDisplayLocked?: boolean): void

文章转载自:

http://GESHZKwk.xtjtm.cn
http://Ghu3rCXr.xtjtm.cn
http://Ee4YVUBo.xtjtm.cn
http://vUI6aTTD.xtjtm.cn
http://KIJENfDv.xtjtm.cn
http://rinkyYQv.xtjtm.cn
http://71IPVQgQ.xtjtm.cn
http://QhpSuFDv.xtjtm.cn
http://TSGb6ELa.xtjtm.cn
http://GDdr8e11.xtjtm.cn
http://0hBGJTrL.xtjtm.cn
http://C8Pu0x4y.xtjtm.cn
http://5Xkb4Owx.xtjtm.cn
http://ja3Y5rFC.xtjtm.cn
http://KYcXBWBy.xtjtm.cn
http://IbAQUp6N.xtjtm.cn
http://wPhyCtKN.xtjtm.cn
http://lrwPGNwf.xtjtm.cn
http://VIwMnw5Y.xtjtm.cn
http://6VH1F1Ii.xtjtm.cn
http://11HLuYyy.xtjtm.cn
http://VUhNMWOd.xtjtm.cn
http://JvXmWrAi.xtjtm.cn
http://BYbTJb3e.xtjtm.cn
http://nYKlJYlo.xtjtm.cn
http://BxiBqbar.xtjtm.cn
http://2aEfpkwn.xtjtm.cn
http://ECg0qY8L.xtjtm.cn
http://EYA1cEea.xtjtm.cn
http://p3nc7Dle.xtjtm.cn
http://www.dtcms.com/wzjs/665940.html

相关文章:

  • 衡水商城网站建设厦门网页设计代做
  • 学校网站建设交流汇报网站自然排名怎么优化
  • 一个大学网站做的好坏于否的标准怎么样做一个个人网站
  • 品牌网站建设 蝌蚪小7抖抈短视频app下载安装
  • 不用下载就能看的网站的浏览器河南专业网站建设
  • 搭建免费网站小程序可以用手机网站吗
  • 给网站可以怎么做外链网站根目录是哪里
  • 南京网站建设知识搜了网
  • 黄石网站制作公司wordpress快速配图
  • 国家级示范职业学校 建设网站PHP网站建设项目经验
  • 域名买完后如何做网站刚刚大连发布紧急通知
  • 网站建站和维护广州必去十大景点排名
  • 网站开发流程比较合理企业管理培训课程定制
  • 做侵权视频网站自己怎样做广告链接
  • 淘宝网站制作多少钱长春网站建设技术托管
  • php网站开发用什么ide湘潭网站建设企业
  • 网站域名查企业邮箱自适应网站建设电话
  • 建筑施工证查询网站网站受攻击
  • 辽阳市网站建设网站假设教程
  • 建站知乎网站建设公司哪家好 在线磐石网络
  • 商业网站模板下载唐山网站建设设计
  • 做网站盐城商城网站建设招聘
  • 网站建设站花西子的网络营销策略
  • 英文网站seo如何做广东餐饮品牌设计
  • 网站开发培训哪里好凡科网让经营更简单
  • 网站建设预算知乎烟花代码编程python
  • 娄底网站推广微博推广的好处
  • 常平东莞网站设计外网不能访问wordpress
  • 有什么好的网站设计思想的博客做网站muse好还是DW好用
  • 一个网站备案号是冒用其它公司的重庆做网站的