- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在开发一款允许用户快速点击并忘记快照的应用程序。大多数应用程序都已完成,除了相机以我想要的方式工作。现在我的相机正在工作,但我似乎找不到禁用快门声音的方法,也找不到禁用显示预览的方法。我能够用控件覆盖预览,但我宁愿尽可能不显示它。
总而言之,这些是我在使用内置相机控件时想要禁用的项目。
有谁知道可以为我指明正确方向的资源,我将不胜感激。我一直在关注来自 this sample 的 CommonsWare 示例相当接近。
谢谢。
最佳答案
这实际上是手机的 build.prop 中的一个属性。我不确定是否有可能改变这一点。除非你完全覆盖它并使用你自己的相机代码。尽你所能使用 SDK 中提供的内容。
看看这个:
CameraService.cpp . . .
CameraService::Client::Client(const sp<CameraService>& cameraService,
const sp<ICameraClient>& cameraClient,
const sp<CameraHardwareInterface>& hardware,
int cameraId, int cameraFacing, int clientPid) {
mPreviewCallbackFlag = FRAME_CALLBACK_FLAG_NOOP;
mOrientation = getOrientation(0, mCameraFacing == CAMERA_FACING_FRONT);
mOrientationChanged = false;
cameraService->setCameraBusy(cameraId);
cameraService->loadSound();
LOG1("Client::Client X (pid %d)", callingPid)
}
void CameraService::loadSound() {
Mutex::Autolock lock(mSoundLock);
LOG1("CameraService::loadSound ref=%d", mSoundRef);
if (mSoundRef++) return;
mSoundPlayer[SOUND_SHUTTER] = newMediaPlayer("/system/media/audio/ui/camera_click.ogg");
mSoundPlayer[SOUND_RECORDING] = newMediaPlayer("/system/media/audio/ui/VideoRecord.ogg");
}
可以注意到,点击声音是在没有您的交互的情况下启动的。
这是 Gingerbread 源代码中使用的服务。
他们不允许这样做的原因是因为在某些国家这是非法的。实现您想要的唯一方法是拥有自定义 ROM。
更新
如果这里说的是:http://androidforums.com/t-mobile-g1/6371-camera-shutter-sound-effect-off.html
仍然适用,然后您可以编写一个计时器来关闭声音(静音模式)几秒钟,然后在每次拍照时将其重新打开。
关于Android Camera.takePicture - 可以禁用快门声音和预览表面吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9106939/
在 androidx.activity 版本 1.2.0-alpha05 中,TakePicture 合约的 API 已更改: The TakePicture contract now returns
我正在使用相机拍摄图像: mCamera.takePicture(null, null, new PhotoHandler(getApplica
我正在尝试使用后置摄像头拍照,然后在我使用以下代码的服务中获取它的字节: Camera camera = Camera.open(); SurfaceView view = new SurfaceVi
在模拟器环境下,原始数据的Camera.takePicture回调是否为null?我从 WWW 上得到了 CameraSurface 方法,所以它应该是正确的。 最佳答案 在调用 takePictur
首先要注意的是:以下错误发生在 2 个不同的 HTC Desires 上,一个是 2.3.3,一个是 4.0.4。 我在尝试调用 .takePicture 时收到以下错误消息: E/MemoryHea
我正在尝试拍照,但在调用 takePicture 时照片挂起。不会产生异常。我的代码在从服务启动的 AsyncTask 中运行。未使用任何 Activity ,也不得使用任何 Activity 。我在
我正在使用 Camera 类中的 takePicture() 方法。它拍了照片,但它没有声音!我的客户想要 Android 发出的默认点击声音。 我看过其他线程,似乎问题在于禁用声音,而不是相反!为什
我尝试使用新的 registerForActivityResult 拍照。我可以打开相机 Intent ,但拍照后,没有触发回调,我看不到任何关于 Activity 结果或 logcat 错误的信息。
我正在尝试为我们的研究小组正在研究的 iPhone 项目构建一个 QRCodeReader。经过大量研究,我找到了名为 QuickMark 的程序。该程序自动扫描 QRCodes。它的作用似乎是加载
我尝试在后台运行相机服务,服务启动后我立即收到错误takePicture failed。我是 Android 新手,Stackoverflow 新手,也不是一个好的程序员。 我已经添加了正确的权限,并
我正在查看消息应用程序 Signal 的 Android 代码,并尝试查看捕获的图像字节发送到的位置。 public void takePicture(final Rect previewRect
我觉得这是某个小地方的小错误。我正在尝试设置自定义相机,当我单击捕获按钮时,我得到一个空指针。也许我的相机实例为空?不知道为什么,因为我非常仔细地阅读了文档。请在下面发布代码和错误,谢谢! 主类: p
我是 Android 应用开发的新手。 我们目前正在使用 Android 创建一个机器人,它可以访问摄像头进行图像处理。 我的问题是:Camera 类中的 takePicture() 方法从拍摄照片到
我正在使用自定义的 UIImagePickerController 并且我也需要在同一个 Controller 中使用 UINavigationBar,所以我没有显示默认的相机捕捉按钮,而是尝试利用空
按照 Android API 文档给出的步骤进行操作后,我在调用 Camera.takePicture() 后没有收到任何回调(没有快门回调或图像回调)。我拥有 list 中声明的正确权限,没有遇
我正在为android 编写一个拍照应用程序。在 onPreviewFrame(byte[] data, Camera camera) 中从预览中获取帧后,代码会进行一些处理。问题在于 android
我一直在尝试使用 Android 中的 Surface Preview 使用相机拍照。表面预览跨越布局中的整个屏幕。 每当我调用 takePicture 时,它都会失败并提示我没有启用预览。 这是
在我尝试过的所有手机上,包括带有 API 2.3.7 和 4.0 的 Galaxy Nexus,在调用 takePicture 方法后表面 View 更改为拍摄的图像,即“图像查看”。 我已经在这些平
我正在使用 OPENCV 开发一个项目。我在 onCameraFrame 上有一些过程。当它显示预览时,用户可以拍照。但是在某些设备中,我在调用 takePicture(...) 方法后出错。我应该怎
我正在使用视觉 API 来跟踪人脸。我根据面部位置应用了一个蒙版。当我从前置摄像头拍照时,我调用 camerasource.takePicture() 来保存图像。我在某些设备(如三星)中面临图像旋转
我是一名优秀的程序员,十分优秀!