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