Подтвердить что ты не робот

Можно ли установить максимальное время, разрешенное для записи андроида, с использованием намерения?

Я использую android.provider.MediaStore.ACTION_VIDEO_CAPTURE. Мне было интересно, есть ли способ изменить максимальное время, разрешенное для каждой записи. Я ДОЛЖЕН СДЕЛАТЬ Intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT,60000);//max of 60 seconds но он продолжает записывать передачу. Спасибо заранее.

4b9b3361

Ответ 1

На самом деле MediaStore.EXTRA_DURATION_LIMIT укажите время в секунды, а не в миллисекундах! Так что вам просто нужно изменить свое значение с 60000 до 60;) Документация для Android

Ответ 2

Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra("android.intent.extra.durationLimit", 30000);
intent.putExtra("EXTRA_VIDEO_QUALITY", 0);
startActivityForResult(intent, ActivityRequests.REQUEST_TAKE_VIDEO);

Этот код хорошо работает на API 2.2, но ограничение продолжительности не работает на API 2.1

android.intent.extra.durationLimit был введен в API Level 8,, поэтому он недоступен в Eclair и ранее, к сожалению. У некоторых производителей устройств может быть собственный способ установить максимальную продолжительность на более старых устройствах, что объясняет, почему вы видели это, работая над некоторыми приложениями до Froyo.

Ответ 3

В течение 30 секунд попробуйте этот код.

intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 30);

Ответ 4

Используйте это, здесь 60 секунд Код:   intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 60);

Ответ 5

Используйте MediaRecorder

 /**
     * Starts a new recording.
     */
    public void start() throws IOException {

    recorder = new MediaRecorder();

    String state = android.os.Environment.getExternalStorageState();

    if (!state.equals(android.os.Environment.MEDIA_MOUNTED)) {
        throw new IOException("SD Card is not mounted.  It is " + state
            + ".");
    }

    // make sure the directory we plan to store the recording in exists
    File directory = new File(path).getParentFile();
    System.out.println("start() directory >  " + directory);
    if (!directory.exists() && !directory.mkdirs()) {
        throw new IOException("Path to file could not be created.");
    }



    recorder.setAudioSource(MediaRecorder.AudioSource.MIC); // Sets the
    // audio source
    // to be used
    // for recording



    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); // Sets
    // the
    // format
    // of
    // the
    // output
    // file
    // produced
    // during
    // recording.
    // 5 Minutes = 300000 Milliseconds

    recorder.setMaxDuration(300000); // Sets the maximum duration (in ms) of
    // the recording session



    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); // Sets the
    // audio
    // encoder
    // to be
    // used for
    // recording.

    recorder.setOutputFile(path); // Sets the path of the output file to be
    // produced.
    recorder.prepare(); // Prepares the recorder to begin capturing and
    // encoding data.
    recorder.start(); // Recording is now started

}