Ограничение по времени для Android с использованием намерения - программирование

Ограничение по времени для Android с использованием намерения

Как я могу ограничить запись при использовании намерений? Я пробовал этот код:

 Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
 intent.putExtra("android.intent.extra.durationLimit",5);    
 startActivityForResult(intent,RQS_RECORDING);

Эта часть кода отлично работает при записи видео. Время отсчитывается от 5 до 0 и после 5 секунд запись автоматически останавливается. Но это ограниченное время не работает, когда я записываю звук. Почему?

Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
intent.putExtra("android.intent.extra.durationLimit", 5);
startActivityForResult(intent, RQS_RECORDING);

Почему это ограничение времени 5 секунд не работает, когда я записываю звук?

4b9b3361

Ответ 1

У меня есть аналогичная проблема, и я исправил свою проблему, используя ниже фрагмент кода:

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 5);
startActivityForResult(this, cameraIntent,CAMERA_PIC_REQUEST);

где CAMERA_PIC_REQUEST - мой тип int как:

private static final int CAMERA_PIC_REQUEST = 1337;

Ответ 2

вы должны попробовать с помощью MediaRecorder mRecorder = new MediaRecorder(); и mRecorder.setMaxDuration(5000)//5 секунд;

Ответ 3

private void recordVideo() {
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_VIDEO);

// set video quality
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 30);

intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set Video file
startActivityForResult(intent, CAMERA_CAPTURE_VIDEO_REQUEST_CODE);
}

fileuri - ваш путь к файлу. Попробуйте это.

Ответ 4

    intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 60);