几天以来,我一直在使用CAMERA模块进行应用.我已经定制了完整的相机模块,而不是通过意图调用硬件内置的移动相机.我已经使用了快门,图片等的回叫.现在我正在尝试为这个定制的相机添加ZOOM和AUTO-FOCUS功能.任何人都可以告诉我添加ZOOM和AUTO-FOCUS功能的方法以及清单文件中应该提到的所需权限..希望我会尽快得到帮助.
我正在使用下面的代码来显示一个内部的front_camera surfaceView,但是当我在三星Galaxy S plus上尝试这个代码时,所有屏幕都是黑色的,但没有错误发生.有谁知道它为什么会发生?
public class TestLedActivity extends Activity {
private SurfaceView preview=null;
private SurfaceHolder previewHolder=null;
private Camera camera=null;
private boolean inPreview=false;
private int id;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
if (currentapiVersion > android.os.Build.VERSION_CODES.FROYO){
id=findFrontFacingCamera();
Log.d("TestLedActivity","L'id trovato e': "+id);
camera = Camera.open(id);
} else{
Log.d("TestLedActivity","La versione e' froyo");
camera = Camera.open();
}
preview=(SurfaceView)findViewById(R.id.cpPreview);
// TODO Auto-generated method stub
previewHolder=preview.getHolder();
previewHolder.addCallback(surfaceCallback);
previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
@Override
public void onResume() {
super.onResume();
}
@Override …Run Code Online (Sandbox Code Playgroud) 我正在开发一个需要音频/视频聊天的应用...我的问题是当我开始捕捉视频时音频播放完全停止.
技术说明 我使用AudioTrack Class和AudioTrack.OnPlaybackPositionUpdateListener进行音频播放.我使用Camera和Camera.PreviewCallBack进行视频录制.
现在,一旦摄像头启动,AudioTrack类的回叫就会停止工作.我该怎么做才能解决这个问题?我有HTC的设备,它有Android2.2.
编辑 因为我不能在这里发布完整的代码...(我无法访问视频模块的代码),我在这里列出了这个场景: -
public void start(){
bufferSize = AudioTrack.getMinBufferSize(sampleRateInHz, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT);
if (bufferSize != AudioTrack.ERROR_BAD_VALUE && bufferSize != AudioTrack.ERROR) {
audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, this.sampleRateInHz, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT,
this.bufferSize, AudioTrack.MODE_STREAM);
if (audioTrack != null && audioTrack.getState() == AudioTrack.STATE_INITIALIZED) {
Log.i(LOG_TAG, "Audio Track instance created buffer Size : " + this.bufferSize);
audioTrack.setPositionNotificationPeriod(320);
audioTrack.setPlaybackPositionUpdateListener(this);
// init All the jitter variables
initVariables();
// short[] tempBuf = shortBuffer;//new short[bufferSize / 2];
audioTrack.write(shortBuffer, 0, shortBuffer.length);
audioTrack.write(shortBuffer, 0, shortBuffer.length);
audioTrack.write(shortBuffer, 0, …Run Code Online (Sandbox Code Playgroud) 我想知道如何使用commonsware相机库打开闪光灯:https://github.com/commonsguy/cwac-camera
我想我必须在我的相机主机中覆盖,但这不起作用.
@Override
public Camera.Parameters adjustPreviewParameters(Camera.Parameters parameters)
{
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
return super.adjustPreviewParameters(parameters);
}
Run Code Online (Sandbox Code Playgroud)
问候,
我的SurfaceView实现Camera.PreviewCallback&的子类SurfaceHolder.Callback.
private SurfaceHolder mHolder;
private Camera mCamera;
private final FPSCounter fpscounter = new FPSCounter();
public MySurfaceView(Context context, AttributeSet attrs) {
super(context, attrs);
mHolder = getHolder();
mHolder.addCallback(this);
}
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
fpscounter.logFrame();
Log.d("fps", String.valueOf(fpscounter.getLastFrameCount()));
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
synchronized (this) {
mCamera.stopPreview();
Camera.Parameters parameters = mCamera.getParameters();
parameters.setRecordingHint(true);
parameters.setPreviewFormat(ImageFormat.NV21);
mCamera.setParameters(parameters);
try {
mCamera.setPreviewDisplay(holder);
mCamera.setPreviewCallback(this);
mCamera.startPreview();
} catch (IOException e) {
e.printStackTrace();
} …Run Code Online (Sandbox Code Playgroud) 我是Android新手,我已经做了很多培训,但图像没有从相机加载.以下是我从相机或图库中捕获图像的代码:
public void showDiloag(){
Dialog dialog = new Dialog(getActivity());
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Choose Image Source");
builder.setItems(new CharSequence[] { "Gallery", "Camera" },
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
switch (which) {
case 0:
Intent intent = new Intent(
Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent
.createChooser(
intent,
"Choose a Picture");
getAcitivity.startActivityForResult(
chooser,
ACTION_REQUEST_GALLERY);
break;
case 1:
Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(
cameraIntent,
ACTION_REQUEST_CAMERA);
break;
default:
break;
}
}
});
builder.show();
dialog.dismiss();
}
Run Code Online (Sandbox Code Playgroud)
并显示该照片: …
我有一个SurfaceView拥有相机预览.我已将相机对焦模式设置为:Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO
并添加了一个AutoFocus回调.当我运行应用程序时,我可以看到相机实时调整其焦点,但autoFocusCallback只会被触发一次,当它发生时,它总是返回相同的值.(2.95)无论我来自焦点对象有多近或多远.
想知道我做错了什么..是否有可能获得实际焦距是什么的实时信息?
我的SurfaceView,onSurfaceChanged代码:
SurfaceHolder.Callback surfaceHolderListener = new SurfaceHolder.Callback() {
public void surfaceCreated(SurfaceHolder holder) {
camera=Camera.open();
try {
camera.setPreviewDisplay(previewHolder);
camera.setDisplayOrientation(90);
}
catch (Throwable e){ }
}
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
{
Parameters params = camera.getParameters();
Rect centralFocusArea = new Rect();
centralFocusArea.set(holder.getSurfaceFrame().width()/2-10, holder.getSurfaceFrame().height()/2-10, holder.getSurfaceFrame().width()/2+10, holder.getSurfaceFrame().height()/2+10);
ArrayList<Camera.Area> focusAreas = new ArrayList<Camera.Area>();
focusAreas.add(new Camera.Area(centralFocusArea, 1000));
//params.setPreviewSize(width, height);
params.setPictureFormat(PixelFormat.JPEG);
params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
// params.setFocusAreas(focusAreas);
camera.setParameters(params);
camera.startPreview();
camera.autoFocus(new AutoFocusCallback() {
@Override
public void onAutoFocus(boolean …Run Code Online (Sandbox Code Playgroud) 从最近几天开始,我遇到的相机图像问题太小,尺寸为120 x 160.
场景是当我从相机捕获图像并将该图像转换为byte []时,它变得太小.
以下是我使用的代码:
Bitmap unscaledBitmap = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
unscaledBitmap .compress(Bitmap.CompressFormat.PNG, 30, bytes);
byte[] bytesDoc1 = bytes.toByteArray();
Run Code Online (Sandbox Code Playgroud)
对此没有任何了解,但是我已经尝试了许多解决方案,但都没有为我工作.
请帮我.
android bytearray bitmap android-camera android-camera-intent
我正在尝试学习如何在应用程序中使用相机,这就是我所达到的,想法是有一个按钮打开相机,我们拍照后图片会立即显示在屏幕上,第二个按钮是从早期版本无法立即显示图片,必须单击以显示它.
无论如何我的问题是,这个代码没有显示在Android 6的图片..在我的Android 5设备上它工作正常..图片保存在"sdcard/camera_app/cam_image.jpg"路径的任何一种方式和按钮没有还没有工作,所以我在思考一下imageview已经从android 5改为6了?问题是如何使这个功能为Android 6手机
public class Add_Comment_Picture extends AppCompatActivity {
static final int CAM_REQUEST = 1;
ImageView imageView;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add__comment__picture);
button = (Button) findViewById(R.id.button);
imageView = (ImageView) findViewById(R.id.imageView);
Button button2 = (Button) findViewById(R.id.button3);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent camera_intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = getFile();
camera_intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(camera_intent , CAM_REQUEST);
}
});
button2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String path = "sdcard/camera_app/cam_image.jpg";
imageView.setImageDrawable(Drawable.createFromPath(path)); …Run Code Online (Sandbox Code Playgroud) 我正在尝试整合在Android中拍照.在运行我正在运行的应用程序并且错误" 不幸的是,相机已停止 ",但我的应用程序没有崩溃.我在Android"KITKAT"中发现了这个问题.这是我用来拍照的示例代码,
使用这个功能我正在拍照,
private void take_picture_intent() {
Intent takePictureIntent = (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT)
? new Intent(MediaStore.ACTION_IMAGE_CAPTURE_SECURE)
: new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(this.getActivity().getPackageManager()) != null) {
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException e) {
e.printStackTrace();
}
if (photoFile != null) {
photoURI = FileProvider.getUriForFile(this.getActivity(), "com.android.myapplication.fileprovider", photoFile);
Log.e(TAG, "photoFile: "+photoFile+" ,URI : "+photoURI.getPath());
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
getActivity().startActivityForResult(takePictureIntent, SelectMedia.IMAGE_CAPTURE_AT_THE_DOOR);
}
}
}
Run Code Online (Sandbox Code Playgroud)
此函数用于生成图像路径,
private File createImageFile() throws IOException {
// Create an image file name
String timeStamp = …Run Code Online (Sandbox Code Playgroud) android ×10
android-camera ×10
camera ×2
android-ndk ×1
audio ×1
autofocus ×1
bitmap ×1
bytearray ×1
imageview ×1
surfaceview ×1