Я хочу сделать приложение для Android, которое запускает видео в реальном времени, захваченное задней камерой в фоновом режиме. Я довольно новичок в Android-разработчике Android. Может кто-нибудь помочь.живая камера в фоновом режиме Android-приложения
ответ
То, что вы просите, довольно сложно, и его слишком много, чтобы начать андроид. Но вы можете использовать это и будете работать:
---- >>>> !!!! Я ПЕРЕСМОТРЕТЬ МОЙ ОТВЕТ. ТЕПЕРЬ ВЫ МОЖЕТЕ ИСПОЛЬЗОВАТЬ ЭТО КАК И БУДЕТ РАБОТАТЬ. < -----
package com.mreprogramming.test;
import java.io.IOException;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.Toast;
import android.app.Activity;
import android.content.Context;
import android.hardware.Camera;
import android.os.Bundle;
public class CameraActivity extends Activity implements SurfaceHolder.Callback{
protected static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 0;
private SurfaceView SurView;
private SurfaceHolder camHolder;
private boolean previewRunning;
final Context context = this;
public static Camera camera = null;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.camera);
SurView = (SurfaceView)findViewById(R.id.sview);
camHolder = SurView.getHolder();
camHolder.addCallback(this);
camHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
if(previewRunning){
camera.stopPreview();
}
Camera.Parameters camParams = camera.getParameters();
Camera.Size size = camParams.getSupportedPreviewSizes().get(0);
camParams.setPreviewSize(size.width, size.height);
camera.setParameters(camParams);
try{
camera.setPreviewDisplay(holder);
camera.startPreview();
previewRunning=true;
}catch(IOException e){
e.printStackTrace();
}
}
public void surfaceCreated(SurfaceHolder holder) {
try{
camera=Camera.open();
}catch(Exception e){
e.printStackTrace();
Toast.makeText(getApplicationContext(),"Error",Toast.LENGTH_LONG).show();
finish();
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
camera.stopPreview();
camera.release();
camera=null;
}
}
И для макета camera.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/camview">
<SurfaceView
android:id="@+id/sview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
</RelativeLayout>
Удачи
включают Кроме того, это в манифесте
<uses-permission android:name="android.permission.CAMERA" />
Также в манифест добавить на вкладку активности CameraActivity следующее, чтобы убедиться, что ваша активность всегда будет i n, поскольку в противном случае телефон держит протрайт (вертикально), если вы не измените код, он изменит соотношение сторон изображения и сильно исказит его.
<activity
android:name="com.mreprogramming.test.CameraActivity"
android:label="@string/app_name"
android:screenOrientation="landscape" > <-------ADD THIS ---!!!!!
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Если вы хотите сделать макет полный экран это в вашем стилей XML
<resources>
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.NoTitleBar.Fullscreen">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="android:Theme.NoTitleBar.Fullscreen">
<item name="android:windowFullscreen">true</item>
<item name="android:windowNoTitle">true</item>
</style>
Я понял, что мне нужно много изучать, прежде чем я смогу понять код, который вы дали. Большое спасибо в любом случае. Я посмотрю на это через некоторое время. – Abhimanyu
Вместо того, чтобы CameraActivity реализовал SurfaceHolder.Callback, лучше обеспечить отдельную реализацию обратного вызова. См. Ответ ниже. Это связано с тем, что на моем устройстве Android вы получаете сообщение об ошибке, «приложение передало пустую поверхность». –
Вместо имея CameraActivity реализовать SurfaceHolder.Callback, то лучше, чтобы обеспечить отдельный Реализация обратного вызова вроде:
camHolder.addCallback(callback);
private SurfaceHolder.Callback callback = new Callback() {
public void surfaceCreated(SurfaceHolder holder) {}
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}
public void surfaceDestroyed(SurfaceHolder holder) {}
}
На моем Android-устройстве, Samsu ng S3, я получаю сообщение об ошибке «Приложение передало пустую поверхность» с тегом Camera, если обратный вызов не выполняется отдельно.
- 1. Камера Android в фоновом режиме
- 2. андроид камера в фоновом режиме
- 3. Камера Android в фоновом режиме OpenCV
- 4. Живая камера от android до сервера C#
- 5. Swift, камера в ландшафтном режиме
- 6. Камера растягивается в портретном режиме
- 7. Фон в фоновом режиме
- 8. Работа в фоновом режиме
- 9. INTENT.ACTION_CALL в фоновом режиме
- 10. Перетяжка в фоновом режиме
- 11. AlarmManager в фоновом режиме
- 12. stringWithContentsOfUrl в фоновом режиме
- 13. Запуск в фоновом режиме
- 14. CoreData в фоновом режиме
- 15. SendEmailAsync в фоновом режиме
- 16. iBeacon в фоновом режиме
- 17. PictureBox в фоновом режиме?
- 18. AVSpeechSynthesizer в фоновом режиме
- 19. MPMoviePlayerController в фоновом режиме
- 20. NFC в фоновом режиме
- 21. MPMusicPlayerControllerNowPlayingItemDidИзменить в фоновом режиме
- 22. UILocalNotification в фоновом режиме
- 23. Загрузка в фоновом режиме
- 24. Съемка в фоновом режиме
- 25. iBeacon в фоновом режиме?
- 26. MPMusicPlayerControllerPlaybackStateDidChangeNotification в фоновом режиме
- 27. Работает в фоновом режиме
- 28. Счетчик в фоновом режиме
- 29. Обработка в фоновом режиме?
- 30. Петля в фоновом режиме
Я только начинаю изучать приложение, и это мой первый проект. Я не знал, с чего начать, поэтому я разместил вопрос. Я искал это, но это не помогло. просто дайте мне отправную точку или какой-либо справочный материал, пожалуйста, – Abhimanyu
@Abhimanyu проверить мой ответ. вы можете использовать код как есть – mremremre1