Używam android.provider.MediaStore.ACTION_VIDEO_CAPTURE
. Zastanawiałem się, czy istnieje sposób na zmianę maksymalnego czasu na nagranie. SPROSTAŁEM DODAWANIE Intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT,60000);//max of 60 seconds
, ale kontynuuje to nagranie. Z góry dziękuję.Czy można ustawić maksymalny dozwolony czas na nagrywanie w systemie Android za pomocą intencji?
Odpowiedz
Zastosowanie 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
}
Dziękuję Jennifer, próbowałem używać rejestratora mediów do nagrywania filmów, ale jest niestabilny na niektórych platformach, takich jak Samsung Galaxy. Miałem nadzieję, że istnieje sposób na dodanie maksymalnego czasu, ponieważ potrzebuję wszystkiego, co wykorzystuje intencja action_capture. Jakieś pomysły? – user875139
Próbowałem: android.provider.MediaStore.EXTRA_DURATION_LIMIT prawy? – jennifer
Tak, próbowałem tego i this intent.putExtra ("android.intent.extra.durationLimit", 60000) ;. Wciąż nic. – user875139
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);
Ten kod działa dobrze na API 2.2, ale limit czas nie działa na API 2.1
android.intent.extra.durationLimit
został wprowadzony w API Level 8,
dlatego Niedostępne w Eclair i wcześniej, niestety. Niektórzy producenci urządzeń mogą mieć własny sposób ustalania maksymalnego czasu trwania na starszych urządzeniach, co wyjaśnia, dlaczego widzieliście to działając na niektórych aplikacjach przed Froyo.
możesz zobaczyć poziom interfejsu API, w którym każda zmienna jest wprowadzana, patrząc po prawej stronie szarego paska na stronie zasobów Androida. Na przykład zobacz tę zmienną (i jej poziom API) tutaj: http://developer.android.com/reference/android/provider/MediaStore.html#EXTRA_DURATION_LIMIT – jennifer
Sprawdź również ten link: http://www.netmite.com /android/mydroid/donut/packages/apps/Camera/src/com/android/camera/VideoCamera.java .. To będzie przydatne dla ciebie – jennifer
Mam błąd ActivityRequests tutaj? –
W rzeczywistości MediaStore.EXTRA_DURATION_LIMIT
zapewnia czas w sekundach, NIE w milisekundach! więc wystarczy zmienić wartość od 60000 do 60;) Android Documentation
Użyj tego, tu jest 60 sekund Kod: intent.putExtra (MediaStore.EXTRA_DURATION_LIMIT, 60);
Przez 30 sekund wypróbuj ten kod.
intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 30);
- 1. Android TimePickerDialog ustawić maksymalny czas
- 2. Android - Jak rozpocząć nagrywanie wideo automatycznie po wywołaniu intencji kamery
- 3. Czy można ustawić ImageSize za pomocą displayImage()?
- 4. Nagrywanie dźwięku za pomocą OpenAL
- 5. Nagrywanie głosu za pomocą Java
- 6. Nagrywanie wideo za pomocą AVFoundation
- 7. Jak załadować lokalną stronę html za pomocą intencji w systemie Android?
- 8. Czy potrafisz zdefiniować filtr intencji Androida za pomocą zasobu ciągów?
- 9. Nagrywanie dźwięku za pomocą mikrofonu HTML5?
- 10. Android: Udostępnianie tekstu i obrazu (URL) za pomocą intencji
- 11. Nagrywanie wideo w tle w systemie Android 4.0
- 12. Android Dodaj wydarzenie do kalendarza za pomocą intencji, pobierz EventID
- 13. Czy można ukryć widok w systemie Android?
- 14. Nagrywanie wideo w systemie Android powierzchni OpenGL (GLSURFACEVIEW)
- 15. Jak ustawić maksymalny czas wykonania dla posta ajax z jQuery?
- 16. Android Jak kolejkować wiele intencji na IntentService
- 17. Rozpocznij i zatrzymaj nagrywanie za pomocą przycisku w powiadomieniu
- 18. Działanie intencji dla zdarzeń sieciowych w systemie Android sdk
- 19. Android Odpowiada na URL w intencji
- 20. Maksymalny rozmiar pliku dozwolony przez przesyłanie plików ASP.NET Kontrola
- 21. Nagrywanie dźwięku i odtwarzanie zmodulowanego dźwięku w systemie Android?
- 22. Uruchamianie aplikacji za pomocą intencji URI
- 23. Android Cursor maksymalny rozmiar
- 24. Czy można ustawić zależności dla folderu za pomocą require.js?
- 25. Skanowanie odcisków palców w systemie Android za pomocą urządzenia Samsung
- 26. Czy można ustawić wiele atrybutów danych za pomocą funkcji jQuery.attr()?
- 27. Czy można ustawić wiele atrybutów czcionki za pomocą NSAttributedString
- 28. Maksymalny czas wygaśnięcia klucza memcache
- 29. Uzyskaj maksymalny rozmiar tekstury OpenGL ES 2.0 w systemie Android
- 30. Nagrywanie dźwięku za pomocą ALSA z linii IN
Nie należy podawać, że MediaStore.EXTRA_DURATION_LIMIT podano w sekundach, a nie milisekundach. Działa to jednak tylko na urządzeniach z okresu po wersji 2.0. – user953768