/ / mediaRecorder do nagrywania ostatnich X sekund - android, przechwytywanie wideo, czas trwania, android-mediarecorder

mediaRecorder do nagrywania ostatnich X sekund - Android, przechwytywania wideo, czas trwania, Android-mediarecorder

Udało mi się nagrać wideo za pomocą mediaRecorder klasa na Androida.

Jednak muszę teraz nagrywać, dopóki nie powiem, żeby przestał, ale nagrywaj tylko maks. X sekund.

Na przykład, jeśli zacząłem nagrywać w czasie = 0(sekundy) i ustawiłem go na nagrywanie maksymalnie 10 sekund, jeśli zatrzymam nagrywanie na czas = 20 (sekund), nagrany film będzie miał okres 10..20 sekund.

Jedyną rzeczą podobną do tego, co znalazłem, jest setMaxDuration, ale to automatycznie zatrzymuje się po ustawieniu określonego czasu, więc w moim przypadku nagrywa tylko pierwsze 10 sekund.

Odpowiedzi:

3 dla odpowiedzi № 1

ABY NAGRYWAĆ MEDIA, ABY NAGRYWAĆ X DRUGI U, PO PROSTU PODAJ TEN KOD W SWÓJ KOD NAGRYWANIA WIDEO

Intent captureVideoIntent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
captureVideoIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 10);
captureVideoIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(captureVideoIntent, VIDEO_CAPTURED);

0 dla odpowiedzi nr 2

Nie znam żadnego sposobu na osiągnięcie tego, czego potrzebujesz za pomocą samych zestawów SDK. Możesz nagrać wideo, a następnie po ustaleniu go skrócić wideo do ostatnich 10 sekund.

Nie użyłem tego, ale ten facet sugeruje w tym swoją bibliotekę odpowiedź


0 dla odpowiedzi № 3

Prawidłowym słowem kluczowym do wyszukiwania jest „okrągły bufor”. Zobaczysz kilka metod, które nie są trywialne. Niektórzy korzystają z rozwiązań NDK.

Mój pomysł to: Wiesz, że X sekund chcesz nagrać. Niż zapis do pliku X_1, po czym kończy nagrywanie. Automatycznie uruchom i nagraj plik X_2 aż do końca. Kiedy się skończy, zapisz do pliku X_3 ORAZ usuń plik X_2, aby zaoszczędzić miejsce.

Zatem maksymalna długość pamięci i wideo może wynosić X * 2. Minimalna może być X.

Aby skorzystać z zapisu cyklicznego, myślę, że należy go zdekodować do ramek, zapisać, zakodować, zużywa się dużą moc przetwarzania, czego rezultatem jest drenaż ciasta i ogrzewanie urządzenia!