Was ist der Unterschied zwischen MediaPlayer und VideoView in Android?

95

Ich habe mich gefragt, ob es einen Unterschied zwischen ihnen gibt, wenn es um das Streamen von Videos geht.

Ich weiß, VideoViewkann für das Streaming verwendet werden und wozu Mediaplayer? MediaPlayerKann ich, soweit ich weiß, das Gleiche tun wie VideoViewrichtig?

Kann mir jemand die Antwort geben?

Und wenn ich Videos vom Server mithilfe von RTSP auf Android streamen möchte, mit welchem ​​sollte ich beginnen? VideoViewoder MediaPlayer?

Irgendein Vorschlag?

oattie
quelle
Sollte das nicht auf Superuser sein?
Quamis
13
Ich denke es gehört hierher. Ist das nicht eine Android-Programmierfrage?
Juli

Antworten:

40

Wurde die gleiche Frage , und wie ich aus verstanden , was Mark (CommonsWare) geraten hier auf zahlreiche Themen, ist Videoview ein Wrapper (200 hundert Zeilen Code) für Mediaplayer und Surface eingebettete Kontrollen zur Verfügung zu stellen.

Er teilte auch freundlicherweise einige Beispiele mit:

https://github.com/commonsguy/cw-advandroid/blob/master/Media/Video/src/com/commonsware/android/video/VideoDemo.java

https://github.com/commonsguy/vidtry/blob/master/src/com/commonsware/android/vidtry/Player.java

und Beispiel von android sdk http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo.html

Außerdem hatten einige Leute Probleme beim Abspielen von Videos auf dem Emulator. Testen Sie sie daher unbedingt auf dem tatsächlichen Gerät, wenn Sie Probleme haben

Mischkin
quelle
17

VideoView ist im Wesentlichen eine Ansicht, die an einen MediaPlayer gebunden ist, um die Implementierung von Videos in Ihrer App erheblich zu vereinfachen. Wenn Sie nicht viel benutzerdefinierte Arbeit leisten, ist VideoView der richtige Weg.

Sie können jedoch auch den RTSP-Link an das System weiterleiten, um die am besten geeignete App zum Abspielen des Videos zu verwenden. Dies ist noch einfacher:

String url = "rtsp://yourrtsplink.com/blah";
Uri uri = Uri.parse(url);
startActivity(new Intent(Intent.ACTION_VIEW, uri));

Videos sollten auf einem Gerät getestet werden, da die Emulatorwiedergabe schlecht ist. Außerdem sollten Sie sich darüber im Klaren sein, dass für RTSP ein zusätzlicher Port geöffnet sein muss, der von einigen Firewalls blockiert wird.

Ian G. Clifton
quelle
welches ist schneller?
Albert Chen
0

Der VideoPlayer ist ein Wrapper für MediaPlayer und SurfaceView. Es ist einfacher, den Video-Player mit VideoView als mit einem MediaPlayer zu implementieren, wenn die Videodateien im internen Speicher der App gespeichert sind. Verwenden Sie den Inhaltsanbieter oder speichern Sie sie als weltweit lesbar. Andernfalls wird dies der Fall sein nicht arbeiten

HocineHamdi
quelle