我已经看到了关于这个问题的其他几个问题,但似乎都没有解决我的问题.我有一个工作正常的自定义相机应用程序,除缩放按钮外的所有东西.这是使用SDK min 8 target 14的代码:
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
if (isPreviewing){
camera.stopPreview();
}
Camera.Parameters p = camera.getParameters();
p.setPreviewSize(sizes.get(0).width, sizes.get(0).height);
p.setColorEffect(effect);
zoomControls = (ZoomControls) findViewById(R.id.zoomControls);
if (p.isZoomSupported()) {
maxZoomLevel = p.getMaxZoom();
Toast.makeText(PictureTaker.this, String.valueOf(maxZoomLevel),Toast.LENGTH_LONG).show();
zoomControls.setIsZoomInEnabled(true);
zoomControls.setIsZoomOutEnabled(true);
zoomControls.setOnZoomInClickListener(new OnClickListener() {
public void onClick(View v) {
if (currentZoomLevel < maxZoomLevel) {
currentZoomLevel++;
camera.startSmoothZoom(currentZoomLevel);
//Toast.makeText(PictureTaker.this, String.valueOf(currentZoomLevel),Toast.LENGTH_LONG).show();
}
}
});
zoomControls.setOnZoomOutClickListener(new OnClickListener() {
public void onClick(View v) {
if (currentZoomLevel > 0) {
currentZoomLevel--;
camera.startSmoothZoom(currentZoomLevel);
}
}
}); …Run Code Online (Sandbox Code Playgroud) 我拍摄照片并保存到我的画廊.当我捕捉图像并保存时,一切都很完美.但是如果相机处于打开状态,如果我按下后退按钮而不拍照,则应用程序停止.
我怎么能解决这个问题?
这是我的代码:
public class ImportCard extends Activity {
private static final int CAMERA_PIC_REQUEST = 1111;
ImageButton importimage;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_import_card);
ImageButton importimage = (ImageButton) findViewById(R.id.importimage);
importimage.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, CAMERA_PIC_REQUEST);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_PIC_REQUEST) {
//2
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
//3
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
//4
File …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序使用意图用相机拍照,但最近我遇到了一个问题,用户使用开发者选项,如"后台进程限制",他们关闭所有后台应用程序 - 所以我的应用程序被杀死,除了调用onPause和onResume.我希望如果有可能检查这个选项是否关闭,那么我可以提示用户正确的对话.
根据Camera.Parameters#getPreferredSizeForVideoPreview文档:
我们建议您选择与要录制的视频分辨率具有相同宽高比的预览尺寸
我发现,在某些设备(Galaxy S3)上,选择具有不同宽高比的视频录制尺寸确实会导致录制视频(绿色/紫色视频)的问题.
当我遵循文档的建议并坚持相同的宽高比时,它大部分都有效,但在某些设备(Nexus S/Android 4.0.4)上,调用MediaRecorder.start()失败并显示以下消息:
E/MediaRecorder? start failed: -19
Run Code Online (Sandbox Code Playgroud)
在其他设备(HTCEVOV4G/Android 4.0.3)上调用MediaRecorder.stop失败并显示以下消息:
E/MediaRecorder? stop failed: -1007
Run Code Online (Sandbox Code Playgroud)
但是,我确实发现,如果我MediaRecorder#setVideoSize使用与相机预览尺寸完全相同的尺寸进行调用,则视频录制将起作用.
我有一个错误代码1000,如果我从我的照片库中选择一个图像与cordova插件cordova-plugin-file 3.0.0(android).我不知道错误代码1000测量什么.如果我拍一张新照片,一切正常.
有人有想法吗?
function optionsForType(type) {
var source;
switch (type) {
case 0:
source = Camera.PictureSourceType.CAMERA;
break;
case 1:
source = Camera.PictureSourceType.PHOTOLIBRARY;
break;
}
return {
destinationType: Camera.DestinationType.FILE_URI,
sourceType: source,
allowEdit: false,
encodingType: Camera.EncodingType.JPEG,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: false
};
}
function saveMedia(type) {
var deferred = $q.defer();
var options = optionsForType(type);
$cordovaCamera.getPicture(options).then(function(imageUrl) {
var name = imageUrl.substr(imageUrl.lastIndexOf('/') + 1);
var namePath = imageUrl.substr(0, imageUrl.lastIndexOf('/') + 1);
var newName = makeid() + name;
console.log(newName, cordova.file.dataDirectory);
$cordovaFile.copyFile(namePath, name, cordova.file.dataDirectory, newName)
.then(function() { …Run Code Online (Sandbox Code Playgroud) android android-camera ionic-framework cordova-plugins ionic
我正在尝试创建一个应用程序,它采取前面的图像,然后返回图像上的单个活动意图,我的前置摄像头代码与下面相同,工作完全正常我甚至调用完成来破坏表面和内部onSurfaceDestroy()我调用initBackCam( )下面给出的方法再次正常工作直到onSurfaceChanged()在onSurfaceChanged()里面我调用pCamera.takePicture(null,mPictureCallback,mPictureCallback)抛出异常takePicture失败
注意:这个代码工作正常直到kitkat在棒棒糖和棉花糖中失败
我尝试在前后摄像头之间延迟,我试图把后置摄像头的代码放在不同的活动中仍然会抛出相同的错误,我已经发布了相机并在拍照之前调用了startPreview()但仍然会抛出同样的错误
我使用了以下权限
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
<uses-feature android:name="android.hardware.camera.back" android:required="false" />
Run Code Online (Sandbox Code Playgroud)
请帮忙!!!!
public static Bitmap bitmap;
public SurfaceHolder pSurfaceHolder;
private Camera pCamera;
private boolean pPreviewRunning = false;
private RelativeLayout pCameraPreview;
private BackCameraService backCam;
private void initBackCamera() {
pCameraPreview = (RelativeLayout) findViewById(R.id.preview_back_camera);
backCam = new BackCameraService(getBaseContext(), pCamera);
pCameraPreview.addView(backCam);
}
public class BackCameraService extends SurfaceView implements SurfaceHolder.Callback {
public Camera pCamera;
private Context pContext;
Camera.PictureCallback mBackPictureCallback = new Camera.PictureCallback() {
public void onPictureTaken(byte[] …Run Code Online (Sandbox Code Playgroud) 码:-
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
try{
imageUri = Uri.fromFile(File.createTempFile("image", ".jpg"));
}catch (Exception ex){
ex.printStackTrace();
}
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, REQUEST_CAMERA);
Run Code Online (Sandbox Code Playgroud)
我在android清单文件中使用了与此相关的所有权限...上面的意图在mot g3 turbo和更多设备上正常工作但是在只有nexus 5的情况下,resultCode才会出现0 ..为什么?
我正在开发一个项目,我需要创建一个类似于SnapChat的应用程序,我在Visual Studio上使用Xamarin,我想创建一个带有屏幕底部按钮的Camera Stream.一旦用户触摸该圈子该应用程序将拍照!
我是xamarin的新手,所以我有很多问题.
1.)我在xamarin页面上关注这个例子:https://developer.xamarin.com/recipes/android/other_ux/textureview/display_a_stream_from_the_camera/
但是我不明白为什么相机流看起来很奇怪,如果手机处于垂直位置,显示的图像是水平的,反之亦然,当我移动手机时,显示的图像移动得非常慢,就好像它会做任何一种调整大小或什么的.
我怎样才能解决这个问题 ?
2.)我需要在应用程序中添加按钮,但代码中包含以下行:
SetContentView (_textureView);
Run Code Online (Sandbox Code Playgroud)
所以我找到了这段代码:
public class Activity1 : Activity
{
bool _previewing;
Camera _camera;
TextureView _textureView;
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView(Resource.Layout.CameraLayout);
Button button = FindViewById<Button>(Resource.Id.button1);
_textureView = FindViewById<TextureView>(Resource.Id.textureView1);
button.Click += delegate {
try
{
if (!_previewing)
{
_camera = Camera.Open();
_camera.SetPreviewTexture(_textureView.SurfaceTexture);
_camera.StartPreview();
}
else
{
_camera.StopPreview();
_camera.Release();
}
}
catch (Java.IO.IOException ex)
{
Console.WriteLine(ex.Message);
}
finally
{
_previewing = !_previewing;
}
};
}
Run Code Online (Sandbox Code Playgroud)
在这个问题上: …
我想从我在html5 / angular上构建的应用程序访问移动后置摄像头。我曾经使用过,
<input type="file" accept="image/*" capture="camera" />但它总是先打开前置摄像头,然后再打开后置摄像头,是否有办法始终打开后置摄像头?
android-camera ×10
android ×9
camera ×2
angular ×1
aspect-ratio ×1
back-button ×1
c# ×1
camera-api ×1
canvas ×1
crop ×1
html5 ×1
ionic ×1
video ×1
xamarin ×1