标签: android-camera

Galaxy Nexus 上的自定义相机拍摄的图像模糊

我在应用程序中有一个自定义相机,在大多数设备上拍摄的图像看起来都不错,但在 Galaxy Nexus 上情况有所不同。Galaxy Nexus 中的图像模糊。我在摩托罗拉 Atrix 上也看到了颗粒状的线条。但Droid X、Droid Razr、HTC Evo、HTC难以置信都表现出了不错的成绩。知道为什么会发生吗?这是我到目前为止所拥有的。PS:我在活动中使用自动对焦。

public class CameraPreview extends SurfaceView implements
    SurfaceHolder.Callback {

private SurfaceHolder mHolder;
private Camera mCamera;

public CameraPreview(Context context, Camera camera) {
    super(context);
    mCamera = camera;
    mHolder = getHolder();
    mHolder.addCallback(this);
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}

@Override
public void surfaceCreated(SurfaceHolder holder) {
    // The Surface has been created, now tell the camera where to draw the
    // preview.
    try {
        mCamera.setPreviewDisplay(holder);
        Camera.Parameters parameters = mCamera.getParameters();
        List<String> focusModes = parameters.getSupportedFocusModes();
        if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
            parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
        }

        parameters.set("orientation", …
Run Code Online (Sandbox Code Playgroud)

android android-camera galaxy

3
推荐指数
1
解决办法
2027
查看次数

旋转 180 度 android 无法正常工作

如果我将左侧底座更改为右侧底座(两者都是用户的横向视图模式),则应用程序(活动)不会重新创建。Hense,相机显示为水平翻转图像。当我尝试为两种纵向模式(正常和反向)更改设备位置时,结果相同。设备正常检测到 90 度旋转。也就是说,左侧 => 纵向 => 右尺寸 => 反向纵向 => 左侧正常工作!

有没有可能解决这个问题?

我使用的是安卓 4.4.4。

代码:

    Display display = ((WindowManager)context.getSystemService(WINDOW_SERVICE)).getDefaultDisplay();

    if(display.getRotation() == Surface.ROTATION_0){//0

        mCamera.setDisplayOrientation(90);
    }else if(display.getRotation() == Surface.ROTATION_90){//1
        mCamera.setDisplayOrientation(0);
    }else if(display.getRotation() == Surface.ROTATION_180){//2
        mCamera.setDisplayOrientation(270);
    }else if(display.getRotation() == Surface.ROTATION_270){//3
        mCamera.setDisplayOrientation(180);
    }
    Log.d(TAG, "ROTATION:" + display.getRotation() + " ");
Run Code Online (Sandbox Code Playgroud)

编辑 我的意思是,onResume()SurfaceCreate()我通过180度的视角旋转设备从不打电话。

编辑功能代码

SurfaceView sfv;
FrameLayout fl0;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //some code to initialize
    fl0 = (FrameLayout) findViewById(R.id.fl0);
    sfv = new SurfaceView(this);
    fl0.addView(sfv, 0);
    addSurfaceHolder();
} …
Run Code Online (Sandbox Code Playgroud)

java android android-camera

3
推荐指数
1
解决办法
2002
查看次数

Android Camera2 图片是黑的,视频记录只有 1 秒

我在您可以在此处找到的两个示例的帮助下使用 Camera2 API:

我正在使用与上述链接相同的源代码,因此我不会在此处复制我的源代码(除非您需要某些部分,否则我将编辑我的问题并将其发布)。

编辑:

进行了一些测试。当我尝试通过手机播放视频时,它只显示第一帧,我可以听到录音中实际存在的音频(声音)。一旦视频播放到结束,视频会以某种方式自动重新启动并按原样显示视频。

但是,当我尝试在我的 PC 上播放视频(将其从手机复制到桌面)时,我只会在最后一帧之前出现黑屏。显示最后一帧,但视频根本不播放。我可以听到音频(声音)。

我在想某些视频编码/解码可能存在问题?

问题:

在我的情况下,视频录制不起作用。我可以在目录中看到它们应该在我的手机上的两个文件,但是当我播放视频(5 秒视频)时,前 4 秒是黑色的,然后最后一秒就像我录制的一帧,就是这样,但是文件大小似乎很大(160MB)。

屏幕:

  • 上传后会发视频

我不知道出了什么问题,有人可以帮忙吗?

video android android-image android-camera android-camera2

3
推荐指数
1
解决办法
1337
查看次数

如何使用Camera API实现SlowMotion和TimeLapse视频录制

有没有办法使用Camera API实现慢动作和延时录音?

我尝试过使用MediaRecorder设置VideoFrameRate,VideoBitRate VideoCaptureRate但对我来说没什么用.

我已成功使用JNI实现,但我发现它花费了太多时间而且没有进行优化.

如果您找到任何其他解决方案,请帮助我.

video android frame-rate android-camera android-mediarecorder

3
推荐指数
1
解决办法
3994
查看次数

需要在android中使用相机在矩形视图内捕获图像

我在 android 中创建一个文档扫描应用程序,在我的项目中使用 OpenCV 和 Scan 库进行裁剪,我在相机视图中使用 drawrect 创建了一个矩形,现在我只需要捕获该矩形部分内的图像并将其显示在另一个活动中.

有问题的图像:

在此处输入图片说明

android opencv android-camera

3
推荐指数
1
解决办法
8265
查看次数

在androidcamera2API中控制传感器ISO和曝光时间

我正在尝试在手动相机控制中添加新的曝光值和 ISO 值。我正在使用 Camera2Basic 示例。我现在面临的问题是我是Android新手。我尝试查看 L-Camera,但它是在 Scala 中,这让我更加困惑。

我尝试了以下更改,但图像预览没有更新。

 private void createCameraPreviewSession() {
    try {
        SurfaceTexture texture = mTextureView.getSurfaceTexture();
        assert texture != null;

        // We configure the size of default buffer to be the size of camera preview we want.
        texture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight());

        // This is the output Surface we need to start preview.
        Surface surface = new Surface(texture);

        // We set up a CaptureRequest.Builder with the output Surface.
        mPreviewRequestBuilder
                = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
        mPreviewRequestBuilder.addTarget(surface);

        // Here, we create a CameraCaptureSession for camera …
Run Code Online (Sandbox Code Playgroud)

android android-camera android-camera2

3
推荐指数
1
解决办法
8168
查看次数

将文件从cordova文件传输插件上传到nodeJS服务器

我正在尝试将我从cordova(cordova插件文件传输)中获取的图片上传到nodeJS服务器.这是我的移动应用代码:

function uploadToServer(pictureName, fileURI) {

  var options = new FileUploadOptions();
  options.fileKey = "file";
  options.mimeType = "image/jpeg";
  options.fileName = pictureName;

  var ft = new FileTransfer();
  ft.upload(fileURI, encodeURI(CONSTANTS.hosts.remoteSR),
    function (res) {
      console.log("Code = " + res.responseCode);
    },
    function (error) {
      $log.debug(error)
      alert("An error has occurred: Code = " + error.code);
    },
    options);

}
Run Code Online (Sandbox Code Playgroud)

PS:fileURI和pictureName是valide params,并在其他函数中正确测试.

我的节点JS服务器代码:

var express =   require("express");
var multer  =   require('multer');
var app         =   express();

var storage =   multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, './uploads'); …
Run Code Online (Sandbox Code Playgroud)

javascript node.js android-camera cordova

3
推荐指数
1
解决办法
1327
查看次数

setPreviewCallback()和setPreviewCallbackWithBuffer()

我有一个代码,可以从前置摄像头访问帧流,并将它们推送到后台线程处理.现在我根本没有使用任何缓冲区,一切正常(在我的手机上).

那么问题setPreviewCallback()setPreviewCallbackWithBuffer()这个特定的任务有何不同?

android android-camera

3
推荐指数
1
解决办法
1538
查看次数

启用/禁用相机(QML相机)

我在camera.qml中有qml相机小部件。qml 组件是从放置在后台堆栈小部件上的 Qt 小部件“WidgetCamera”加载的。该小部件在创建时就启动了相机设备。

如何使相机仅在小部件显示在前台时启动。反之亦然,当小部件进入后台时如何释放相机?

相机.qml

Item {
    width: 640
    height: 360

    Camera {
        id: camera
    }

    VideoOutput {
        source: camera
        anchors.fill: parent
    }
}
Run Code Online (Sandbox Code Playgroud)

widgetCamera.h

class WidgetCamera : public QWidget
{
    Q_OBJECT
    public:
    WidgetCamera() {
       QQuickWidget *qw= new QQuickWidget;
       qw->setSource(QUrl("qrc:///camera.qml"));
       // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

主窗口.h

class MainWindow : QMainWindow
{
    Q_OBJECT
    public:
    MainWindow() {
    QStackedWidget *sw = new QStackedWidget;
    sw->addWidget(new QWidget());
    sw->addWidget(new WidgetCamera());

    // ...

    }
}
Run Code Online (Sandbox Code Playgroud)

qt camera qml android-camera

3
推荐指数
1
解决办法
1991
查看次数

如何使用camera2修改帧率?

我正在尝试修改帧速率(降低它),以便我们可以对其进行实时操作。但不能改变帧率。

可能的解决方案包括:

  • 改变 CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES

  • 延迟 setRepeatingRequest

我们需要降低传递给的生成帧速率,Surfaceholder以便可以进一步应用于其中的操作。

java android android-camera android-camera2

3
推荐指数
1
解决办法
2716
查看次数