Pobieranie filmów (nie lokalnych) z aplikacji Google Photos
ZAplikacja Google Photos, Próbuję wybrać wideo, które nie jest buforowane na urządzeniu.
UżywamACTION_GET_CONTENT zamierzam uruchomić okno dialogowe opcji, a stamtąd wybieram aplikację Zdjęcia Google.
Wybierając lokalne filmy, zwraca Uri w tym formularzu.
content: // media / external / video / media / 6708
Z tego powodu sprawdzam dostawcę treści, aby pobrać rzeczywistą lokalizację pliku, i stamtąd. Lokalizacja pliku wygląda tak.
/ storage / emulated / 0 / WhatsApp / Media / WhatsApp Video / VID-20131102-WA0000.mp4
Teraz, kiedy wybieram wideo online, tj. Wideo, które nie jest jeszcze dostępne na moim urządzeniu i które należy pobrać, aby go użyć, zwrócone Uri wygląda tak:
treść: //com.google.android.apps.photos.content/1/https://lh6.googleusercontent.com/_RD-QTO_SK5jlaPldTe2n5GANqMc3h-ukcbNoFlF1NLy=s0-d
Teraz nie ma udokumentowanego dostawcy treści, który pomógłby mi uzyskać rzeczywisty link do tego filmu. Nawet jeśli wykonam zapytanie, nie zwraca nic poza kolumnami DISPLAY_NAME i SIZE.
WYŚWIETLANA NAZWA zawiera plik wideo.mpeg (ta sama nazwa wyświetlana dla różnych filmów)
ROZMIAR prawdopodobnie mówi mi rozmiar rzeczywistego pliku.
Odniesiony do tego postu na temat SO.
Sprawdziłem różne posty i pomyślałem, że będę musiał pobrać InputStream dla wideo przez dostawcę treści, zapisać plik i pracować z plikiem. Wybór pliku obrazu działa jednak dobrze, ale z wideo nie.
Aby skopiować strumień do pliku, mam ten kod.
InputStream inputStream = context.getContentResolver().openInputStream(Uri.parse(path));
I na koniec napisz do pliku tymczasowego. Plik zostanie utworzony, ale wydaje się, że nie jest poprawnie sformatowany. VLC odtwarza plik, ale pokazuje tylko pierwszą klatkę.
Jeśli podam adres URL z ostatniej części podanego powyżej identyfikatora URI i spróbuję go wyświetlić w przeglądarce, pobierze plik GIF. Zgaduję, że to jest problem. Ale nie wiem, jak zdobyćmpeg format wideo.
Czy ktoś doświadczył tego samego?