我正在尝试确定Droid Incredible智能手机相机的视野的大小.我需要知道我正在开发的应用程序的这个值.有谁知道如何以编程方式找出/计算它?
对于Android API 2.1及更高版本,我们可以使用上下文:
getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_AUTOFOCUS)
Run Code Online (Sandbox Code Playgroud)
但在2.1版之前,我们如何执行相同的操作?有没有这样的东西不涉及调用Camera.open然后getParameters呢?
我是Android和套接字编程的新手.我想创建一个Android应用程序,将视频从设备相机实时传输到PC.我首先要做的是从PreviewCallback参数获取原始视频数据并将其转换为RTP数据包.我只是使用JLibRTP来做到这一点.关于传输数据包我认为,有一些相关的类:RtpPkt,RtpSession和RtpSocket.
这是我的一瞥代码:
DatagramSocket rtpSocket = new DatagramSocket();
DatagramSocket rtcpSocket = new new DatagramSocket();
RtpSession rtpSession = new RtpSession(rtpSocket, rtcpSocket);
public void surfaceCreated(SurfaceHolder holder) {
try {
camera = Camera.open();
camera.setPreviewCallback(new PreviewCallback() {
public void onPreviewFrame(byte[] _data, Camera _camera) {
int height = 240;
try {
rtps.sendData(_data);
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), e.toString(),
Toast.LENGTH_SHORT).show();
}
}
});
camera.setPreviewDisplay(holder);
camera.startPreview();
} catch (IOException e) {
Log.d("CAMERA", e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
我仍然想知道我必须在哪里放置地址和端口信息.我知道上面的代码仍然需要你修改任何主人.谢谢你提前..
正如标题所述,我正在开发的应用程序存在一个问题,该问题仅在应用程序在进入后台后重新启动时才会出现.
相机光圈或快门卡在关闭位置.有趣的是你仍然可以拍照,但你看不到预览.拍摄照片后,视图中会正确显示.
如果应用程序完全关闭,则在启动应用程序时不会发生此问题.我可以拍照,添加效果等,每次打开相机都能正常工作.
以下是重现问题的确切步骤:
1)我打开应用程序,一切正常.
2)应用程序通过按主页按钮或来电进入后台.
3)当应用程序进入前景/重新打开并且访问摄像机时,显示快门屏幕并在卡住位置保持关闭状态.
4)解决它的唯一方法是关闭模态视图相机控制器并再次按下相机按钮.
我做了一些研究以找到答案并且没有提出任何问题.没有内存泄漏,我已经检查了仪器中的内存分配,没有什么不寻常的.
希望有人有解决方案,我很感激帮助.
先感谢您.
我想写一个活动:
是否有适用于每台设备的完整示例?链接到一个简单的开源应用程序拍照将是理想的答案.
我的研究到目前为止:
这是一个常见的场景,有很多问题和教程.
主要有两种方法:
方法1本来是完美的,但问题是每个设备上的意图实现不同. 在某些设备上它运作良好.但是,在某些设备上,您可以拍照,但它永远不会返回到您的应用.在某些设备上,启动意图时没有任何反应.通常它还将图像保存到SD卡,并且需要存在SD卡.每个设备上的用户交互也不同.
方法2的问题是稳定性.我尝试了一些例子,但我设法阻止相机在某些设备上工作(直到重启)并完全冻结另一台设备.在另一台设备上捕捉工作,但预览保持黑色.
我会使用ZXing作为示例应用程序(我经常使用它),但它只使用预览(取景器),并且不拍任何照片.我还发现,在某些设备上,ZXing在光照条件改变时没有自动调整白平衡,而原生相机应用程序正确地做到了(不确定是否可以修复).
更新:
有一段时间我直接使用了相机API.这提供了更多控制(自定义UI等),但我不建议任何人.我会在90%的设备上工作,但是每次都会发布一个新的设备,但是会遇到不同的问题.
我遇到的一些问题:
所以一般来说,除非没有别的办法,否则我不建议去这条路线.两年后,我通过自定义代码转储并切换回基于Intent的方法.从那时起,我的麻烦就少了很多.我过去在基于意图的方法中遇到的问题可能只是我自己的无能.
如果你真的需要走这条路,我听说如果你只支持Android 4.0+的设备会更容易.
这是相机实例化的方式:
var camera = new THREE.PerspectiveCamera(
VIEW_ANGLE,
ASPECT,
NEAR,
FAR
);
Run Code Online (Sandbox Code Playgroud)
这些值意味着什么?
在Xcode中设置前置摄像头.我怎样才能做到这一点?在Xcode中设置前置摄像头.
AVCaptureSession *session = [AVCaptureSession new];
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
[session setSessionPreset:AVCaptureSessionPreset640x480];
else
[session setSessionPreset:AVCaptureSessionPresetPhoto];
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error];
require( error == nil, bail );
isUsingFrontFacingCamera = NO;
if ( [session canAddInput:deviceInput] )
[session addInput:deviceInput];
stillImageOutput = [AVCaptureStillImageOutput new];
[stillImageOutput addObserver:self forKeyPath:@"capturingStillImage" options:NSKeyValueObservingOptionNew context:AVCaptureStillImageIsCapturingStillImageContext];
if ( [session canAddOutput:stillImageOutput] )
[session addOutput:stillImageOutput];
Run Code Online (Sandbox Code Playgroud) 我正在使用一种众所周知HTML 5的捕获和上传图像的方法来支持最新的智能手机.这是我的代码:
<input id="attach-file" type="file" accept="image/*" capture="camera">
Run Code Online (Sandbox Code Playgroud)
在我关心的所有设备上都能很好地工作.
问题是这样的:
在Android上,您捕获的文件会自动保存到图库中.我在一个隐私和安全非常关键的应用程序中实现这一点.我们无法将文件保存到用户设备.有谁知道防止OS图片自动保存的方法?
嗨,我正在开发一个带有视频录制功能的应用程序.我遇到了两个插件,能够捕获/保存图像作为文件与颤振:
Camera v0.0.2和Image_picker v0.2.1,它们运行良好,是官方的扑动插件.
从本质上讲,我想构建一个具有抖动视频录制功能的迷你相机插件,可以无缝地与iOS和Android配合使用.
任何建议,方向,升级这些插件的方法都是受欢迎的.
谢谢你!
我创建了一个新的 Flutter 项目并添加了camera插件。添加该依赖项后,我遇到了很多错误。我使用的 Flutter 版本是2.5.2和minSdkVersion 21。
在pubspec.yaml文件中,
environment:
sdk: ">=2.12.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.4
camera: ^0.9.4+4
Run Code Online (Sandbox Code Playgroud)
错误如下,
C:\Users\Lakshan\Documents\SDKs\flutter\.pub-cache\hosted\pub.dartlang.org\camera-0.9.4+4\android\src\main\java\io\flutter\plugins\camera\Camera.java:23: error: cannot find symbol
import android.media.EncoderProfiles;
^
symbol: class EncoderProfiles
location: package android.media
C:\Users\Lakshan\Documents\SDKs\flutter\.pub-cache\hosted\pub.dartlang.org\camera-0.9.4+4\android\src\main\java\io\flutter\plugins\camera\Camera.java:935: error: cannot find symbol
EncoderProfiles getRecordingProfile() {
^
symbol: class EncoderProfiles
location: class Camera
C:\Users\Lakshan\Documents\SDKs\flutter\.pub-cache\hosted\pub.dartlang.org\camera-0.9.4+4\android\src\main\java\io\flutter\plugins\camera\features\resolution\ResolutionFeature.java:10: error: cannot find symbol
import android.media.EncoderProfiles;
^
symbol: class EncoderProfiles
location: package android.media
C:\Users\Lakshan\Documents\SDKs\flutter\.pub-cache\hosted\pub.dartlang.org\camera-0.9.4+4\android\src\main\java\io\flutter\plugins\camera\features\resolution\ResolutionFeature.java:29: error: cannot find symbol
private EncoderProfiles recordingProfile;
^ …Run Code Online (Sandbox Code Playgroud)