อะไรคือความแตกต่างระหว่าง MediaPlayer และ VideoView ใน Android


95

ฉันสงสัยว่ามันมีความแตกต่างกันไหมในการสตรีมวิดีโอ

ฉันรู้ว่าVideoViewสามารถใช้สำหรับสตรีมมิ่งได้และมีMediaplayerไว้เพื่ออะไร? เท่าที่รู้MediaPlayerทำได้เหมือนกันVideoViewใช่ไหม

ใครสามารถให้คำตอบฉัน?

และถ้าฉันต้องการสตรีมวิดีโอจากเซิร์ฟเวอร์โดยใช้ RTSP ไปยัง Android ฉันควรเริ่มต้นด้วยตัวใด? VideoViewหรือMediaPlayer?

ข้อเสนอแนะใด ๆ ?


สิ่งนี้ไม่ควรอยู่ใน superuser ใช่หรือไม่
Quamis

14
ฉันคิดว่ามันเป็นของที่นี่ นี่ไม่ใช่คำถามเกี่ยวกับการเขียนโปรแกรม Android ใช่หรือไม่
juell

คำตอบ:


40

กำลังถามคำถามเดียวกันและตามที่ฉันเข้าใจจากสิ่งที่ Mark (CommonsWare) แนะนำในเธรดจำนวนมากที่นี่VideoView คือ wrapper (รหัส 200 ร้อยบรรทัด) สำหรับ MediaPlayer และ SurfaceView เพื่อให้การควบคุมแบบฝัง

นอกจากนี้เขายังกรุณาแบ่งปันตัวอย่างบางส่วน:

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

และตัวอย่างจาก android sdk http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo.html

นอกจากนี้บางคนยังมีปัญหาในการเล่นวิดีโอบนโปรแกรมจำลองดังนั้นโปรดทดสอบบนอุปกรณ์จริงหากคุณมีปัญหา


17

VideoView เป็นมุมมองที่เชื่อมโยงกับ MediaPlayer เพื่อให้ง่ายต่อการนำวิดีโอไปใช้ในแอปของคุณ หากคุณไม่ได้ทำงานที่กำหนดเองมากนัก VideoView คือหนทางที่จะไป

อย่างไรก็ตามคุณสามารถส่งลิงก์ RTSP ออกไปยังระบบเพื่อใช้แอปที่เหมาะสมที่สุดสำหรับการเล่นวิดีโอซึ่งทำได้ง่ายกว่า:

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

ควรทดสอบวิดีโอบนอุปกรณ์เนื่องจากการเล่นอีมูเลเตอร์ทำได้ไม่ดีและคุณควรทราบด้วยว่า RTSP ต้องการพอร์ตพิเศษในการเปิดซึ่งไฟร์วอลล์บางตัวถูกบล็อก


อันไหนเร็วกว่ากัน?
Albert Chen


0

VideoPlayer เป็นเครื่องห่อหุ้มสำหรับ MediaPlayer และ SurfaceView ทำให้ง่ายต่อการติดตั้งโปรแกรมเล่นวิดีโอด้วย VideoView มากกว่า MediaPlayer หากไฟล์วิดีโอถูกเก็บไว้ในที่จัดเก็บข้อมูลภายในของแอปให้ใช้ผู้ให้บริการเนื้อหาหรือจัดเก็บไว้เป็นที่อ่านได้ทั่วโลกมิฉะนั้นจะ ไม่ทำงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.