2009-06-17 11 views
28

Piszę aplikację do odtwarzania filmów z youtube za pomocą przesyłania strumieniowego.Streaming wideo z YouTube

Pierwsza metoda:

jestem coraz URL RTSP do wideo przy użyciu GData API. Oto kod do odtwarzania adresu URL RTSP.

VideoView mVideoView = new VideoView(this); 
    setContentView(mVideoView); 
    mVideoView.setVideoURI(Uri.parse("rtsp://rtsp2.youtube.com/CiILENy73wIaGQkDwpjrUxOWQBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp")); 
    mVideoView.start(); 

Ale to wyrzuca błąd zarówno na urządzeniu G1 i emulator (emulator ma jakiś problem zapory według listy) Oto komunikat błędu

ERROR/PlayerDriver (35): Polecenie PLAYER_INIT zakończona błąd lub informacji PVMFFailure

Druga metoda:

hack sposób uzyskać ścieżkę pliku 3gp z http://www.youtube.com/get_video?v= & t = <> & <> .. Po pobraniu ścieżki pliku i mogę zadzwonić do setVideoURI i odtworzy się dobrze. Ale jest to hackowy sposób na osiągnięcie tego wymogu. Sprawdziłem Youtube App też, że również nie sposób technikę do odegrania url youtube. (Sprawdzone z LogCat)

Próbowałem zmieniając od VideoView do MediaPlayer, ale bez zmian w przypadku błędu.

Czy istnieje "czysty" sposób na zrobienie tego?

Proszę dać mi znać swoje myśli.

+1

mógłbyś może wyjaśnić włamać trochę więcej? Stoję w obliczu tego samego problemu. – Janusz

+0

Czy nie możesz po prostu wywołać odtwarzacza YouTube, aby odtworzyć wideo? (podobne do tego, jak działa aplikacja YouTube na iPhone'a?) – Geoff

+0

Zobacz też [Jak uzyskać miniaturkę linku do filmu w YouTube za pomocą interfejsu API YouTube?] (http://stackoverflow.com/q/2068344/995926) Istnieje sprytny odpowiedź, która wskazuje, jak uzyskać adres rtsp: wypróbuj ten przykład: http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&prettyprint=true&alt=json – rekire

Odpowiedz

1

Jestem pod wrażeniem, że ten brudny sposób działa w ogóle! Jeśli masz działające rozwiązanie, idź z nim. Nie sądzę, że istnieje czysty sposób na sprawne działanie strumieniowania RTSP w SDK.

2

Jeśli jesteś gotów do pracy w nowej działalności, co następuje będzie działać na urządzeniu, ale nie na emulatorze:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=cxLG2wtE7TM")));

+3

Działa to na urządzeniu, ponieważ ma zainstalowaną aplikację youtube. Nie chcę, aby moja aplikacja była zależna od aplikacji Youtube – Vinay

+0

czy jest jakikolwiek inny sposób na odtwarzanie filmów w YouTube bez aplikacji youtube lub urządzenie nie obsługuje flash i html5. –

2

Czasami Uri.parse zwrot „null”, ponieważ nie mogę analizować protokół rtsp zamiast protokołu http.

Sprawdź to za pomocą logcat logcat Uri.parse(rtspURL).toString() i nic nie zobaczysz. lub tylko uczynić Log.d("tag", Uri.parse); i ten sam będzie powrót.

Spróbuj znaleźć inny sposób analizy (tworzenia) Uri.

będę próbować z tym i uruchom:

String urlVideo = <your rtspURL> 
VideoView video = (VideoView)findViewById(R.id.VideoView01); 
Log.d(tag , urlVideo); 
video.setVideoURI(Uri.parse(urlVideo)); 
MediaController mc = new MediaController(this); 
video.setMediaController(mc); 
video.requestFocus(); 
video.start(); 
mc.show(); 
+0

Jestem całkiem nowy w streamingu wideo na Androida. Czy mógłbyś wytłumaczyć wyjaśnienie? – JohnK

0

Mam wyświetlane filmy z YouTube za pomocą następującego kodu. Mam nadzieję, że będzie przydatny, ale daj mi znać, jak można go ulepszyć.

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    startActivity(new Intent(Intent.ACTION_VIEW, 
        Uri.parse("http://www.youtube.com/watch?v=..."))); 
} 

public void onPrepared(MediaPlayer mp) { 
    // TODO Auto-generated method stub 
} 
+1

Twój kod załaduje stronę, a nie wideo serwera. – IronBlossom

+0

Ten kod uruchomi domyślny odtwarzacz YouTube, który nie jest wymagany –

1

mieliśmy do czynienia z bardzo podobnym problemem.

W tej chwili jestem na pierwszym etapie mojego projektu i staram się, aby obraz wideo po prostu działał. Zabieram dane stąd: http://gdata.youtube.com/demo/ i testuję wszystkie linki wideo.

Filmy RTSP 3GP są naprawdę naprawdę filmami o niskiej jakości ... i nie ma sposobu na dostęp do filmów w formacie MP4 (dobrej jakości). I naprawdę nie wiem jak zrobić to działa, ponieważ myślę, że strumienie MP4 są dostępne tylko dla deweloperów premii ....

1

Rzut okiem Youtube API

myślę, że to też użyć youtube app (które don „t chcesz)

Ale tylko odnieść może znajdziesz jakiś klawisz, aby go rozwiązać

0

nagłówek na wideo wskazuje, że działa na Androidzie. Wypróbuj dobry link do filmu, aby z nim eksperymentować. Oto ten, który używam:

RTSP: //184.72.239.149/vod/mp4: BigBuckBunny_115k.mov

I działa świetnie na Nexus i Samsung tabletki.

0

Czy masz dostęp do Internetu? jeśli nie, należy dodać uprawnienie internetowego do pliku manifestu

<uses-permission android:name="android.permission.INTERNET" /> 

a także spróbuj te URI:

rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov 

http://www.wowza.com/_h264/BigBuckBunny_175k.mov