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

贵州省省建设厅网站教务管理系统哪个好

贵州省省建设厅网站,教务管理系统哪个好,高端网站建设企业,徐州吸引力网络科技有限公司核心功能: 打开摄像头(可支持外接摄像头)检测翻页(后续考虑添加图像差异算法)拍照后用 识图自动用 TextToSpeech 朗读文字内容 📌 说明:使用了 CameraX(Android Jetpack)…

核心功能:

  • 打开摄像头(可支持外接摄像头)
  • 检测翻页(后续考虑添加图像差异算法)
  • 拍照后用 识图
  • 自动用 TextToSpeech 朗读文字内容

📌 说明:

  • 使用了 CameraX(Android Jetpack)处理摄像头输入

  • 使用 ML Kit 做文字识别

  • 使用 TextToSpeech 实现朗读

// Project: StoryBookReaderApp
// MainActivity.java — Android Studio 项目主类package com.example.storybookreaderapp;import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.util.Log;
import android.view.SurfaceView;
import android.widget.Toast;import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.camera.core.CameraSelector;
import androidx.camera.core.ImageAnalysis;
import androidx.camera.core.ImageCapture;
import androidx.camera.core.ImageCaptureException;
import androidx.camera.core.ImageProxy;
import androidx.camera.lifecycle.ProcessCameraProvider;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;import com.google.common.util.concurrent.ListenableFuture;
import com.google.mlkit.vision.common.InputImage;
import com.google.mlkit.vision.text.TextRecognition;
import com.google.mlkit.vision.text.TextRecognizer;import java.util.Locale;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class MainActivity extends AppCompatActivity {private static final int REQUEST_CODE_PERMISSIONS = 10;private static final String[] REQUIRED_PERMISSIONS = new String[]{Manifest.permission.CAMERA};private ExecutorService cameraExecutor;private ImageCapture imageCapture;private TextToSpeech tts;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);SurfaceView view = new SurfaceView(this);setContentView(view);if (allPermissionsGranted()) {startCamera();} else {ActivityCompat.requestPermissions(this, REQUIRED_PERMISSIONS, REQUEST_CODE_PERMISSIONS);}cameraExecutor = Executors.newSingleThreadExecutor();tts = new TextToSpeech(this, status -> {if (status != TextToSpeech.ERROR) {tts.setLanguage(Locale.US);}});}private boolean allPermissionsGranted() {for (String permission : REQUIRED_PERMISSIONS) {if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {return false;}}return true;}private void startCamera() {ListenableFuture<ProcessCameraProvider> cameraProviderFuture = ProcessCameraProvider.getInstance(this);cameraProviderFuture.addListener(() -> {try {ProcessCameraProvider cameraProvider = cameraProviderFuture.get();imageCapture = new ImageCapture.Builder().build();ImageAnalysis imageAnalysis = new ImageAnalysis.Builder().build();imageAnalysis.setAnalyzer(cameraExecutor, image -> {detectPageTurn(image);image.close();});CameraSelector cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA;cameraProvider.unbindAll();cameraProvider.bindToLifecycle(this, cameraSelector, imageCapture, imageAnalysis);} catch (Exception e) {Log.e("CameraX", "Binding failed", e);}}, ContextCompat.getMainExecutor(this));}private void detectPageTurn(ImageProxy image) {takePhotoAndRead();}private void takePhotoAndRead() {imageCapture.takePicture(ContextCompat.getMainExecutor(this), new ImageCapture.OnImageCapturedCallback() {@Overridepublic void onCaptureSuccess(@NonNull ImageProxy image) {InputImage inputImage = InputImage.fromMediaImage(image.getImage(), image.getImageInfo().getRotationDegrees());TextRecognizer recognizer = TextRecognition.getClient();recognizer.process(inputImage).addOnSuccessListener(result -> {String text = result.getText();tts.speak(text, TextToSpeech.QUEUE_FLUSH, null, null);}).addOnFailureListener(e -> Toast.makeText(MainActivity.this, "Text recognition failed", Toast.LENGTH_SHORT).show());image.close();}@Overridepublic void onError(@NonNull ImageCaptureException exception) {Log.e("CameraX", "Capture failed", exception);}});}@Overrideprotected void onDestroy() {if (tts != null) {tts.stop();tts.shutdown();}cameraExecutor.shutdown();super.onDestroy();}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {if (requestCode == REQUEST_CODE_PERMISSIONS) {if (allPermissionsGranted()) {startCamera();} else {Toast.makeText(this, "Permissions not granted", Toast.LENGTH_SHORT).show();finish();}}}
} // End of class
http://www.dtcms.com/wzjs/542791.html

相关文章:

  • html5 单页网站wordpress 分类折叠
  • 网站后台上传图片脚本错误英文网站模板改成中文
  • 做视频网站付费版如何建设一个专业的网站
  • 网站做了泛解析 为什么影响seo织梦cms如何做网站
  • 南昌专业制作网站国外做糖网站
  • 网站建设的商业计划书wordpress mysql 引擎
  • 做服务的网站计算机系毕设代做网站
  • 制作一个网站的步骤wordpress微信付款
  • 网站建设保教免费ppt模板官网
  • 关于网站建设申请报告怀远做网站电话
  • 典型网站开发的流程图se 网站优化
  • fqapps com网站怎么做网站开发经验简历
  • 山楂树建站公司传奇网页版游戏开服表
  • 重庆网站定制公司山东省企业年报网上申报入口
  • 佛山网站搜索排名音乐网站开发与需求
  • 番禺人才网站网站策划制作公司
  • 做软件项目的网站重庆装修公司最新排名
  • 淘宝领卷网站什么做大气企业网站欣赏
  • 建站小程序国外做兼职的网站
  • 进空间的网站wordpress 英文月份
  • 网站建设基本流程公众号开发需要哪些技术
  • 网站建设公司ttmwl常德市城市建设局网站
  • 怎么申请个人网站北京seo推广
  • 张斌网站建设广东seo网站设计多少钱
  • 手机能建网站吗成都idc机房托管
  • 技术支持 合肥网站建设餐饮行业做微信网站有什么好处
  • 北京网站优化公司哪家好wordpress耗资源
  • 电子商务网站开发的书广东网站推广公司
  • 关于做情侣的网站的图片素材开o2o网站需要什么手续
  • 深圳网站设计网站有赞商城网站建设