2013-05-14 4 views
14

Есть ли намерение для запуска камеры с возможностью захвата как картинок, так и видео на Android?Android намерение для захвата изображений и видео?

Я использовал как MediaStore.ACTION_VIDEO_CAPTURE и MediaStore.ACTION_IMAGE_CAPTURE, чтобы захватить аудио или видео, но я не могу найти Intent, который получит возможность переключения между ними обоими, так как в этом примере приложение:

enter image description here

Спасибо!

+0

любая удача? !! ... –

ответ

3

Я мог захватить как изображение, так и видео, используя приведенный ниже код.

Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA); 
+0

'MediaStore.INTENT_ACTION_VIDEO_CAMERA' также могут быть использованы. – Nizam

+5

Как вы можете отредактировать захваченное изображение или видео на результат ONactivity? –

+3

Это намерение не позволит вам получить контент, захваченный –

3

Я достиг его :) Вы можете сделать это, следуя -

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); 
    Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER); 
Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT); 
      contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE); 
      contentSelectionIntent.setType("*/*"); 
    intentArray = new Intent[]{takePictureIntent,takeVideoIntent}; 
    chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent); 
    chooserIntent.putExtra(Intent.EXTRA_TITLE, "Choose an action"); 
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray); 
    startActivityForResult(chooserIntent, 1); 

Аналогичный пример here

Днем кодирования :)

+0

Что такое contentSelectionIntent? –

+0

@ParasWatts Забыл добавить несколько строк. Пожалуйста, проверьте сейчас. –

0

Это не представляется возможным, чтобы захватить как изображения и видео с использованием того же намерения, ваши варианты:

1) Создайте свою собственную камеру this repo can be a good start Но это будет слишком много усилий.

2) Используйте намерение Chooser Intent и передайте намерение как для изображения, так и для видео, это даст вам возможность выбирать между приложением, которое записывает видео и камеру отдельно. В этом случае вы не можете одновременно выполнять обе вещи, но можете выбрать приложение в соответствии с тем, что вы хотите сделать, захватить изображение или записать видео. Ниже приведен код, который работает для меня.

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); 
Intent chooserIntent = Intent.createChooser(takePictureIntent, "Capture Image or Video"); 
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{takeVideoIntent}); 
startActivityForResult(chooserIntent, CAPTURE_MEDIA_RESULT_CODE); 
Смежные вопросы