我在测试我的Android应用程序时StackOverflow遇到了Camera error 100,我发现了一些主题,但它们并没有那么有用.我正在寻找解决错误的相关解决方案.
我写的代码:
mrec = new MediaRecorder(); // Works well
mCamera = Camera.open();
mCamera.unlock();
mrec.setCamera(mCamera);
mrec.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mrec.setAudioSource(MediaRecorder.AudioSource.MIC);
mrec.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
mrec.setOutputFile("/sdcard/zzzz.3gp");
mrec.prepare();
mrec.start();
Run Code Online (Sandbox Code Playgroud)
记录相机的代码:
protected void startRecordingVideo() throws IOException
{
camera = Camera.open();
camera.unlock();
SimpleDateFormat timeStampFormat = new SimpleDateFormat(
"yyyy-MM-dd-HH.mm.ss");
String fileName = "video_" + timeStampFormat.format(new Date())
+ ".3gp";
String fileURL = "/sdcard/"+fileName;
surfaceView = (SurfaceView) findViewById(R.id.surface_camera);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mrec = new MediaRecorder();
mrec.setCamera(camera);
mrec.setPreviewDisplay(surfaceHolder.getSurface());
mrec.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mrec.setAudioSource(MediaRecorder.AudioSource.MIC);
mrec.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_LOW));
mrec.setPreviewDisplay(surfaceHolder.getSurface());
mrec.setOutputFile("/sdcard/"+fileName);
mrec.prepare();
mrec.start();
}
protected void stopRecordingVideo() …Run Code Online (Sandbox Code Playgroud) 我正在学习如何拍照并将其路径保存到文件中.
根据Android开发者网站上的教程提供的方法
getoutputmediafileuri() 但是,当我尝试使用该方法时,我发现它是
不可访问或未定义,我的意思是eclipse用红线强调这个方法.我不知道
如何解决此错误.
请在下面找到代码
public class SaveCameraImageDemoActivity extends Activity {
/** Called when the activity is first created. */
Button btn01;
private Uri fileURI;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn01 = (Button) findViewById(R.id.btn01);
btn01.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intenet = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileURI = getoutputmediafileuri();
//intenet.putExtra("output", uri.getPath());
startActivityForResult(intenet,0);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
}
}
Run Code Online (Sandbox Code Playgroud) 在纵向模式下,图像看起来垂直拉伸,在横向模式下,它看起来水平拉伸.
虽然捕获图像后显示的大小合适.
如何解决这个问题?
我陷入了Android 4.2 Jelly Bean的问题.
如何在我的应用程序中打开相机,默认情况下在全景/ 360幻灯片模式下?
我在grepcode和Camera.Parameters中搜索了很多,但似乎没有任何帮助.除了视频和图像之外,有没有人在全景模式下打开相机的线索?
我的相机应用程序在屏幕上显示相机预览,并在后台处理它.以下是相关代码,尽可能压缩(例如,没有显示错误处理或字段声明):
public final class CameraView extends SurfaceView implements
SurfaceHolder.Callback, Runnable, PreviewCallback {
public CameraView(Context context, AttributeSet attrs) {
super(context, attrs);
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
void openCamera() {
// Called from parent activity after setting content view to CameraView
mCamera = Camera.open();
mCamera.setPreviewCallbackWithBuffer(this);
}
public void surfaceCreated(SurfaceHolder holder) {
new Thread(this).start();
// Set CameraView to the optimal camera preview size
final Camera.Parameters params = mCamera.getParameters();
final List<Camera.Size> sizes = params.getSupportedPreviewSizes();
final int screenWidth = ((View) getParent()).getWidth();
int minDiff = Integer.MAX_VALUE; …Run Code Online (Sandbox Code Playgroud) 我一直试图弄清楚是否有办法使用相机拍摄视频/图片而不定义surfaceview或textureview.我找到了这个链接:使用没有表面视图的Android相机
我在我的nexus平板电脑上使用了这个技巧和textureview,但没有运气!此外,http://handycodeworks.com/?p = 19表示此方法不适用于所有设备.
有没有人知道是否有办法做到这一点?或者它只是android框架根本不支持的东西,GUI必须在布局中有一些表面/纹理元素?然后唯一的选择就是操纵布局,使其在屏幕上根据应用程序要求不可见.
编辑1:如上面链接http://handycodeworks.com/?p=19中所述,我尝试了以下代码:
public class CameraCapture {
// I pass the getApplicationContext() from the main activity.
public void startCameraCapture(Context contx) {
SurfaceView sv = new SurfaceView(contx);
mCamera = Camera.open();
mCamera.setPreviewDisplay(sv.getHolder());
mCamera.setPreviewCallback(new PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
Log.v("TAG", "on preview frame called");
}
Thread.sleep(1000);
mCamera.startPreview();
}
Run Code Online (Sandbox Code Playgroud)
但是,onPreviewFrame()从未被调用过.我错过了什么吗?
编辑2:
是否可以在本机代码中执行?使用OpenCV捕获视频/使用没有GUI元素的相机(surfaceview/textureview)?我查看了这个链接:http://docs.opencv.org/trunk/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html#application-development-with-static-initialization.但是,它们还显示示例代码,其中包含在主布局xml文件中定义的某些摄像机视图元素.
今天我在android中遇到了一个问题surfaceview for camera customization.我尝试了下面的代码.
拍摄图像时出现问题,它会停止相机预览并且不会返回活动.
以下代码将在程序中实现.我从stackoverflow上的现有引用中获取此代码
支持班级.
public class AndroidCameraSurfaceview extends Activity implements
SurfaceHolder.Callback {
TextView testView;
Camera camera;
SurfaceView surfaceView;
SurfaceHolder surfaceHolder;
boolean preview;
PictureCallback rawCallback;
ShutterCallback shutterCallback;
PictureCallback jpegCallback;
int displayheight, displaywidth;
Camera.PreviewCallback previewCallback;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.camerasurfaceview);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
Bundle …Run Code Online (Sandbox Code Playgroud)android android-intent android-camera android-5.1.1-lollipop
我正在构建一个类似于社交媒体的应用程序,人们可以在这里分享Instagram等照片和视频.这就是为什么Camera对我的应用非常重要.现在camera2 API让我很困惑.我想在API级别11+上运行我的应用程序.我知道camera2仅适用于API级别21+因此,我需要为旧版本设计两个API(摄像头),为更高版本设计第二个(摄像头2).问题是我刚刚开始学习Android,我不知道这两个API之间的主要区别是什么.
Camera2 API有哪些主要功能?
或Old Camera API有任何缺点吗?
我的应用程序中需要三件事.
1-简单拍摄照片2-连拍图像(创建GIF图像)3-简单视频拍摄.
哪种Camera API对我有好处?
随着Android 设备管理将被弃用.它将被Android Enterprise Mobility Manager(EMM)取代,并且如功能列表中所示,工作配置文件中不支持禁用摄像头.工作受管设备需要恢复出厂设置才能进行设置.
那么我们将无法再为BYOD禁用摄像头吗?或者有没有其他方法可以禁用所有配置文件/整个设备,如三星KNOX吗?