到目前为止,我还没有找到任何解释.基本上我有一个视频录制课程,当我的三星Galaxy S2上的setVideoSize()设置为720 x 480时,它可以很好地工作.
我希望它以最高分辨率进行录制,因此使用CamcorderProfile.QUALITY_HIGH我可以获得各种最高质量的录制属性并将其设置在我的班级中.这适用于文件格式,视频帧速率,编码器和比特率,但是当我尝试将视频大小设置为CamcorderProfile(1920 x 1080)返回的宽度和高度时,录制的视频只是一个绿色闪烁.
我注意到如果我将720 x 480更改为720 x 481它也做了同样的事情.因此,我只能假设在手机不支持分辨率时会发生这种情况.但是,手机附带的摄像机可以录制1920 x 1080,并且可以录制出色的录像.
我只能假设具有如此高的分辨率,我需要以不同的方式设置其他一些参数,但我无法弄清楚它们可能是什么.
有没有其他人有这个问题?
提前感谢您的回复.
我正在使用PhoneGap的navigator.camera.getPicture功能从Android上的设备相机中检索照片.
function onSuccess(imageData) {
alert("Success!");
}
function onFail(message) {
alert('Failed because: ' + message);
}
$(function() {
$("button").tap(function() {
navigator.camera.getPicture(onSuccess, onFail, { quality: 50 });
});
});
Run Code Online (Sandbox Code Playgroud)
当我单击按钮时,它确实启动了相机,但是当我在拍照后在相机应用上单击"确定"时,它会重新启动应用程序.
我试过了:
有任何想法吗?
我尝试按下一个打开相机并拍照的按钮.我的代码在这里
//for imports check on bottom of this code block
public class HomeProfileActivity extends AppCompatActivity {
//Button camera
public static final String TAG = HomeProfileActivity.class.getSimpleName();
public static final int REQUEST_TAKE_PHOTO = 0;
public static final int REQUEST_TAKE_VIDEO = 1;
public static final int REQUEST_PICK_PHOTO = 2;
public static final int REQUEST_PICK_VIDEO = 3;
public static final int MEDIA_TYPE_IMAGE = 4;
public static final int MEDIA_TYPE_VIDEO = 5;
private Uri mMediaUri;
private ImageView photobutton;
private Button buttonUploadImage, buttonTakeImage;
protected void onCreate(Bundle …Run Code Online (Sandbox Code Playgroud) 我已经实现了一个简单的应用程序,在屏幕上显示相机图片.我现在要做的是抓取一个帧并将其作为位图处理.从我能找到的东西到这一点,这不是一件容易的事.
我已经尝试使用onPreviewFrame方法,您将当前帧作为字节数组,并尝试使用BitmapFactory类解码它,但它返回null.帧的格式是无头YUV,可以转换为位图,但在手机上需要太长时间.另外我已经读过onPreviewFrame方法在运行时有约束,如果它需要太长时间,应用程序可能会崩溃.
那么这样做的正确方法是什么?
我有一个SurfaceView用于绘制图像的,我想将它们叠加到手机相机的实时信息中.
目前,SurfaceView包含图像的图像具有白色背景,但如果我将它们叠加到手机的相机源上,则它们必须是透明的.相机和动画绘图不能在同一个上完成SurfaceView.
追求使用涉及管理相机和绘制图像的多个视图的最佳方法是什么?是否可以SurfaceView透明化?
我需要将OpenCV与GigE Vision以太网相机一起使用,但我找不到有关如何执行此操作的任何有用信息,任何指针,文档和示例代码?
我需要从相机读取帧.
我正在使用AV Foundation类从相机捕获实时视频流并处理视频样本.这很好用.但是,一旦完成,我确实无法正确释放AV基础实例(捕获会话,预览层,输入和输出).
当我不再需要会话和所有关联对象时,我会停止捕获会话并释放它.这大部分时间都有效.但是,有时应用程序崩溃时会在调度队列(以及处理视频样本的位置)创建的第二个线程中引发EXEC_BAD_ACCESS信号.崩溃主要是由于我自己的类实例,它作为样本缓冲区委托,并在我停止捕获会话后被释放.
Apple文档提到了问题:停止捕获会话是一种异步操作.那就是:它不会立即发生.特别是,第二个线程继续处理视频样本并访问不同的实例,如捕获会话或输入和输出设备.
那么如何正确释放AVCaptureSession和所有相关实例呢?是否有通知可靠地告诉我AVCaptureSession已完成?
这是我的代码:
声明:
AVCaptureSession* session;
AVCaptureVideoPreviewLayer* previewLayer;
UIView* view;
Run Code Online (Sandbox Code Playgroud)
实例设置:
AVCaptureDevice* camera = [AVCaptureDevice defaultDeviceWithMediaType: AVMediaTypeVideo];
session = [[AVCaptureSession alloc] init];
AVCaptureDeviceInput* input = [AVCaptureDeviceInput deviceInputWithDevice: camera error: &error];
[session addInput: input];
AVCaptureVideoDataOutput* output = [[[AVCaptureVideoDataOutput alloc] init] autorelease];
[session addOutput: output];
dispatch_queue_t queue = dispatch_queue_create("augm_reality", NULL);
[output setSampleBufferDelegate: self queue: queue];
dispatch_release(queue);
previewLayer = [[AVCaptureVideoPreviewLayer layerWithSession: session] retain];
previewLayer.frame = view.bounds;
[view.layer addSublayer: previewLayer];
[session startRunning];
Run Code Online (Sandbox Code Playgroud)
清理:
[previewLayer removeFromSuperlayer];
[previewLayer release];
[session stopRunning];
[session release];
Run Code Online (Sandbox Code Playgroud) 我使用ViewController中的以下代码调出相机:
- (void)viewDidLoad {
self.imgPicker = [[UIImagePickerController alloc] init];
self.imgPicker.sourceType = UIImagePickerControllerCameraDeviceFront;
self.imgPicker.delegate = self;
}
- (IBAction)grabCamera {
[self presentModalViewController:self.imgPicker animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能让相机默认使用iPhone4的前置摄像头而不是后置摄像头?我试过DeviceFront无济于事.
此外,如何在按下grabCamera后在此相机的顶部添加子视图(半尺寸)?如果我在我的MainWindow.xib中有这个子视图我在说完presentModalViewController代码之后尝试说addSubview但它没有用...我需要创建一个NSTimer并在完全呈现相机显示后加载addSubview或者我需要使用别的东西(类似于CSS中的z-index)第二个问题的答案是imgPicker.cameraOverlayView = viewName;
谢谢大家!
当我在模拟器中运行我的Android应用程序时,我无法连接到相机服务异常.我已经阅读了各种现有的帖子,但没有人修复过这个问题.很明显,Camera.open()调用失败了.我最终想让网络摄像头进入模拟器,正如许多SO帖子所讨论的那样,但现在只是希望应用程序在没有轰炸的情况下运行.我不关心是否有任何摄像机视频显示,因为除了我需要测试的相机之外还有其他功能,并且主要测试我的设备上的摄像头.
我的清单似乎没问题.其中包含以下几行:
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
Run Code Online (Sandbox Code Playgroud)
在我的AVD管理器中,我将前后摄像头设置为"仿真",SD卡值设置为64.这些似乎是推荐值.完整的堆栈跟踪现在在下面.解决方案必须是直截了当的,但是什么?
10-09 08:14:32.375 2628-2628/com.allinlearning.AILAndroidScanner E/AndroidRuntime? FATAL EXCEPTION: main
Process: com.allinlearning.AILAndroidScanner, PID: 2628
java.lang.RuntimeException: Fail to connect to camera service
at android.hardware.Camera.native_setup(Native Method)
at android.hardware.Camera.<init>(Camera.java:350)
at android.hardware.Camera.open(Camera.java:309)
at com.allinlearning.AILAndroidScanner.AsynCamPreview.surfaceCreated(AsynCamPreview.java:104)
at android.view.SurfaceView.updateWindow(SurfaceView.java:572)
at android.view.SurfaceView.access$000(SurfaceView.java:86)
at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:175)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:847)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1871)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:544)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method) …Run Code Online (Sandbox Code Playgroud) 我正在努力捕获使用4.0返回的图像
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[[picker parentViewController] dismissModalViewControllerAnimated:YES];
// MediaType can be kUTTypeImage or kUTTypeMovie. If it's a movie then you
// can get the URL to the actual file itself. This example only looks for images.
//
NSString* mediaType = [info objectForKey:UIImagePickerControllerMediaType];
// NSString* videoUrl = [info objectForKey:UIImagePickerControllerMediaURL];
// Try getting the edited image first. If it doesn't exist then you get the
// original image.
//
if (CFStringCompare((CFStringRef) mediaType, kUTTypeImage, 0) == kCFCompareEqualTo) {
UIImage* picture …Run Code Online (Sandbox Code Playgroud) camera ×10
android ×6
ios ×2
iphone ×2
avfoundation ×1
cordova ×1
emulation ×1
graphics ×1
image ×1
intellij-13 ×1
java ×1
media ×1
objective-c ×1
onclick ×1
opencv ×1
resolution ×1
surfaceview ×1
swift ×1
uiimage ×1